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 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告