问题–使用直接寻址模式编写一个程序,以交换两个16位数字,起始地址为2000 ,第一个16位数字存储在3000 ,第二个16位数字存储在3002存储器地址。
例子 –
算法 –
- 将存储器3000中的16位数字加载到寄存器对(HL)中
- 交换寄存器对
- 将存储器3002中的16位数字加载到寄存器对(HL)中
- 交换两个寄存器对
- 停止
程序 –
Memory | Mnemonics | Operands | Comment |
---|---|---|---|
2000 | LHLD | [3000] | [H-L] <- [3000] |
2003 | XCHG | [H-L] [D-E] | |
2004 | LHLD | [3002] | [H-L] <- [3002] |
2007 | XCHG | [H-L] [D-E] | |
2008 | HLT | Stop |
说明–寄存器(HL)对(DE)对用于一般用途。
- LHLD用于通过16位地址(3字节指令)直接加载寄存器对HL
- XCHG用于交换两个寄存器对(HL),(DE)的数据(1字节指令)
- HLT用于暂停程序。