8085程序查找两个8位数中较大的数
在这个程序中,我们将了解如何查找两个数字中较大的一个。
问题陈述
编写8085汇编语言程序,查找存储在8000H和8001H地址处的两个8位数中较大的数。
讨论
此检查是通过使用CMP指令完成的。此指令与SUB指令非常相似。唯一的区别在于它在执行后不更新累加器的值。因此,比较后,如果CY标志被设置,则表示第一个数字较小,第二个数字较大。
输入
第一个输入
地址 | 数据 |
---|---|
. . . | . . . |
8000 | FD |
8001 | 23 |
. . . | . . . |
第二个输入
地址 | 数据 |
---|---|
. . . | . . . |
8000 | 59 |
8001 | 75 |
. . . | . . . |
流程图
程序
地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
---|---|---|---|---|
F000 | 21, 00, 80 | LXI H,8000H | 指向第一个数字 | |
F003 | 46 | MOV B,M | 将第一个数字加载到B中 | |
F004 | 23 | INX H | 指向下一个位置 | |
F005 | 7E | MOV A,M | 将第二个数字获取到A中 | |
F006 | B8 | CMP B | 将B与A进行比较 | |
F007 | D2, 0B, F0 | JNC STORE | 如果CY = 0,跳转到Store | |
F00A | 78 | MOV A,B | 将A加载为第二个数字 | |
F00B | 32, 50, 80 | STORE | STA 8050H | 将数字存储到内存中 |
F00E | 76 | HLT | 终止程序 |
输出
第一个输出
地址 | 数据 |
---|---|
. . . | . . . |
8050 | FD |
. . . | . . . |
第二个输出
地址 | 数据 |
---|---|
. . . | . . . |
8050 | 75 |
. . . | . . . |
广告