8085微處理器多位元組BCD數減法程式


現在讓我們來看一個Intel 8085微處理器的程式。在這個程式中,我們將學習如何減去多位元組BCD數。

問題陳述

編寫8085組合語言程式以減去兩個多位元組BCD數。

討論

數字儲存在記憶體中,並存儲一個附加資訊。它將顯示多位元組BCD數的位元組數。這裡我們選擇3位元組BCD數。它們儲存在8001H到8003H位置,另一個數儲存在8004H到8006H位置。8000H位置儲存位元組計數。在這種情況下,位元組計數為03H。

對於減法,我們使用十的補碼方法進行減法。

在這種情況下,數字為:672173 – 275188 = 376985

輸入

地址
資料
.
.
.
.
.
.
8000
03
8001
73
8002
21
8003
67
8004
88
8005
51
8006
27
.
.
.
.
.
.

流程圖

程式

地址
十六進位制程式碼
標籤
指令助記符
註釋
F000
21, 00, 80

LXI H,8000H
指向獲取計數的位置
F003
4E

MOV C,M
將計數獲取到C暫存器
F004
11, 01, 80

LXI D,8001H
指向第一個數
F007
21, 04, 80

LXI H,8004H
指向第二個數
F00A
37

STC
設定進位標誌
F00B
3E, 99
LOOP:
MVI A,99H
將99H載入到A暫存器
F00D
CE,00

ACI 00H
將00H和進位與A暫存器相加
F00F
96

SUB M
從A暫存器減去M
F010
EB

XCHG
交換DE和HL暫存器
F011
86

ADD M
將M與A暫存器相加
F012
27

DAA
十進位制調整
F013
77

MOV M,A
將A暫存器儲存到記憶體
F014
EB

XCHG
交換DE和HL暫存器
F015
23

INX H
HL暫存器指向下一個位置
F016
13

INX D
DE暫存器指向下一個位置
F017
0D

DCR C
C暫存器減1
F018
C2, 0B, F0

JNZ LOOP
如果Z=0則跳轉到LOOP
F01B
76

HLT
程式結束

輸出

地址
資料
.
.
.
.
.
.
8001
85
8002
69
8003
37
.
.
.
.
.
.

更新於: 2020年6月30日

468 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告