8085程序:求两个给定字节的最大公约数(HCF)


在这个程序中,我们将学习如何使用8085查找两个数字的最大公约数(HCF)或最大公因数(GCD)。

问题陈述

编写8085汇编语言程序,查找存储在内存位置8000H和8001H的两个数字的最大公约数(HCF)。

讨论

这个问题通过欧几里得算法来求解HCF。这个算法非常简单。算法步骤如下:

  • 如果第一个数字和第二个数字相同,则

    • 跳转到步骤3。

否则,如果第一个数字 < 第二个数字,则


    • 交换第一个数字和第二个数字。
  • 第一个数字 <- 第一个数字 – 第二个数字;跳转到步骤1

  • 显示第一个数字作为结果

值存储在8000H和8001H位置,结果将存储在8050H位置。

输入

第一个输入

地址数据
......
80008000H
800169
......
80500DH
......


第二个输入

地址数据
......
800025
800135
......
805001
......

流程图

程序

地址十六进制代码标签助记符注释
F000H21, 00, 80
LXI H,8000H指向第一个数字
F003H7E
MOV A, M将第一个数字加载到累加器(Acc)
F004H23
INX H指向下一个位置
F005H46
MOV B, M加载第二个数字
F006HB8LOOP:CMP B比较B和A
F007HCA 17 F0
JZ STORE当A和B相同时,存储结果
F00AHDA 11 F0
JC EXG如果B > A,则交换B和A
F00DH90
SUB B如果B < A,则从A中减去B
F00EHC3 06 F0
JMP LOOP跳转到LOOP
F011H48EXG:MOV C,B将B加载到C
F012H47
MOV B, A将A移动到B
F013H79
MOV A, C将C移动到A
F014HC3 06 F0
JMP LOOP跳转到LOOP
F017H32, 50, 80STORE:STA 8050H将值存储到内存中
F01AH76
HLT终止程序


输出

第一个输出

地址数据
......
80500DH
......


第二个输出

地址数据
......
805001
......

更新于:2019年7月30日

2K+ 次查看

开启您的职业生涯

通过完成课程获得认证

开始学习
广告