8085 微处理器计算最小公倍数的程序


现在让我们来看一个 Intel 8085 微处理器的程序。此程序将找到两个 8 位数的最小公倍数。

问题陈述 -

编写 8085 汇编语言程序,以查找存储在 8000H 和 8001H 位置的两个 8 位数的最小公倍数。

讨论 -

在此程序中,我们从 8000H 和 8001H 读取数据。通过加载数字,我们将它存储在 C 寄存器中,并清除 B 寄存器。第二个数字加载到累加器中。将 DE 设置为 BC 寄存器的二进制补码。此 DE 用于从 HL 对中减去 BC。

方法如下:假设数字为 25 和 15。当我们将第一个数字除以第二个数字时,如果余数为 0,则第一个数字就是最小公倍数。但是对于这种情况,存在余数。然后我们将检查 25 的下一个倍数以检查可除性。当余数变为 0 时,程序终止,结果被存储。

输入

第一个输入

地址
数据
.
.
.
.
.
.
8000
03
8001
07
.
.
.
.
.
.

第二个输入

地址
数据
.
.
.
.
.
.
8000
23
8001
07
.
.
.
.
.
.

流程图

程序

地址
十六进制代码
标签
助记符
注释
F000
21, 00, 80
 
LXI H, 8000H
指向 8000H 获取第一个数字
F003
4E
 
MOV C,M
将内存元素加载到 C
F004
06, 00
 
MVI B, 00H
清除 B 寄存器
F006
23
 
INX H
指向下一个位置
F007
7E
 
MOV A,M
将第二个数字加载到累加器
F008
2F
 
CMA
取累加器的反码
F009
5F
 
MOV E,A
将 A 的反码形式加载到 E
F00A
16, FF
 
MVI D, FFH
加载 00H 的反码形式
F00C
13
 
INX D
增加 DE 寄存器对
F00D
21, 00, 00
 
LXI H, 0000H
将 0000H 加载到 HL 对中
F010
09
NEXT
DAD B
将 BC 与 HL 相加
F011
22, 50, 80
 
SHLD 8050H
将 HL 内容存储到 8050H
F014
19
LOOP
DAD D
将 DE 与 HL 相加
F015
D2, 20, F0
 
JNC SKIP
当 CY = 0 时,跳转到 SKIP
F018
7C
 
MOV A,H
将 H 内容获取到 A
F019
B5
 
ORA L
将 L 与 A 进行或运算
F01A
CA, 26, F0
 
JZ EXIT
当 HL 为 0000 时,跳转到 EXIT
F01D
C3, 14, F0
 
JMP LOOP
跳转到 Loop
F020
21, 50, 80
SKIP
LHLD 8050H
从 8050H 加载 HL
F023
C3, 10, F0
 
JMP NEXT
跳转到 NEXT
F026
2A, 50, 80
EXIT
LHLD 8050H
将 HL 对存储为最小公倍数
F029
76
 
HLT
终止程序

 

输出

第一个输出

地址
数据
.
.
.
.
.
.
8050
15
8051
00
.
.
.
.
.
.

第二个输出

地址
数据
.
.
.
.
.
.
8050
3B
8051
01
.
.
.
.
.
.


更新于: 2019-10-05

932 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告