8085程式用於減去兩個BCD數


這裡我們將看到如何使用8085進行BCD減法。

問題陳述

編寫8085組合語言程式,執行儲存在8001和8002位置的兩個數的BCD減法。結果將儲存在8050和8051。

討論

要減去兩個BCD數,我們將使用十的補碼方法。將第一個數儲存到B中,將99載入到A中,然後減去該數以獲得9的補碼。之後,加上1得到10的補碼。我們不能使用INR指令增加。這不會影響CY標誌。所以我們必須使用ADI 01。然後將使用DAA指令調整十進位制。然後,如果結果為負數,我們將FF儲存為高位位元組,否則將00儲存為高位位元組。

輸入

地址
資料
.
.
.
.
.
.
8000
01
8001
97
8002
88
.
.
.
.
.
.

 

流程圖

 

程式

地址
十六進位制程式碼
標籤
助記符
註釋
F000
21, 01, 80
 
LXI H,8001H
指向獲取選擇的地址
F003
46

 
MOV B,M

將運算元載入到B
F004
3E, 99
 
MVI A,99H
將99H載入到A
F006
23

 
INX H

指向下一個運算元
F007
96
 
SUB M
從A中減去M
F008
C6, 01

 
ADI 01H

加上01H以獲得10的補碼
F00A
80
 
ADD B
將B與A相加
F00B
27

 
DAA

調整十進位制
F00C
6F
 
MOV L,A
將A儲存到L
F00D
DA, 3A, F0

 
JC SKP2

如果CY = 1,跳轉到SKP2
F010
26, FF
 
MVI H,FFH
將FFH載入到H
F012
C3, 62, F0

 
JMP STORE

儲存結果
F015
26, 00
SKP2
MVI H,00H
清除HL
F017
22, 50, 80

STORE
SHLD 8050H

從HL儲存結果
F01A
76
 
HLT
終止程式

 

輸出

地址
資料
.
.
.
.
.
.
8050
09
8051
00
.
.
.
.
.
.

 

 

 

 

 

 

更新於: 2019年7月30日

4K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.