8085 微处理器多字节 BCD 数减法程序


在这里,我们将看到一个可以使用 8085 微处理器对多字节 BCD 数进行减法的程序。

问题陈述

编写一个 8085 汇编语言程序来减去两个多字节 BCD 数。

讨论

这些数字存储在内存中,并且还存储了一个额外的信息。它将向我们显示多字节 BCD 数的字节数。这里我们选择 3 字节 BCD 数。它们存储在 8001H 到 8003H 位置,另一个数字存储在 8004H 到 8006H 位置。8000H 位置保存字节数。在这种情况下,字节数为 03H。

对于减法,我们使用 10 的补码方法进行减法。

在这种情况下,数字为: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


更新于:2019 年 10 月 9 日

402 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告