使用直接寻址方式交换两个16位数的8085程序
在这个程序中,我们将学习如何使用直接寻址模式交换两个16位数。
问题陈述
编写一个8085汇编语言程序,使用直接寻址模式交换存储在8000H-8001H和8002H-8003H位置的两个16位数。
讨论
在这里,我们使用XCHG指令交换值。此指令交换DE和HL寄存器对的内容。我们将第一个数字放入DE寄存器对,然后将第二个数字放入HL寄存器对,然后通过XCHG交换它们。
输入
地址 | 数据 |
---|---|
. . . | . . . |
8000 | CD |
8001 | AB |
8002 | 34 |
8003 | 12 |
. . . | . . . |
流程图
程序
地址 | 十六进制代码 | 助记符 | 注释 |
---|---|---|---|
F000 | 2A, 00, 80 | LHLD 8000H | 将第一个数字加载到HL寄存器 |
F003 | EB | XCHG | 交换DE和HL寄存器 |
F004 | 2A, 02, 80 | LHLD 8002H | 将第二个数字加载到DE寄存器 |
F007 | 22, 00, 80 | SHLD 8000H | 将第二个数字存储在第一个位置 |
F00A | EB | XCHG | 交换DE和HL寄存器 |
F00B | 22, 02, 80 | SHLD 8002H | 将第一个数字存储在第二个位置 |
F00E | 76 | HLT | 终止程序 |
输出
地址 | 数据 |
---|---|
. . . | . . . |
8000 | 34 |
8001 | 12 |
8002 | CD |
8003 | AB |
. . . | . . . |
广告