8085反转16位数字的程序

问题—— 在8085微处理器中编写汇编语言程序,以反转16位数字。

null

例如—— 假设16位数字存储在存储器位置2050和2051。

图片[1]-8085反转16位数字的程序-yiteyi-C++库

算法-

  1. 加载寄存器L中存储位置2050的内容和寄存器H中存储位置2051的内容
  2. 移动累加器A中L的内容
  3. 通过执行 RLC 指令4次
  4. 在L中移动A的内容
  5. 将H的内容移动到A中
  6. 通过执行 RLC 指令4次
  7. 在H中移动L的内容
  8. 在L中移动A的内容
  9. 将L的内容存储在存储位置2050中,将H的内容存储在存储位置2051中

项目-

内存地址 助记符 议论
2000 LHLD 2050 L
2003 莫夫A,L A
2004 RLC 将累加器内容向左旋转1位,不带进位
2005 RLC 将累加器内容向左旋转1位,不带进位
2006 RLC 将累加器内容向左旋转1位,不带进位
2007 RLC 将累加器内容向左旋转1位,不带进位
2008 MOV L,A L
2009 MOV A,H A
200A RLC 将累加器内容向左旋转1位,不带进位
200B RLC 将累加器内容向左旋转1位,不带进位
200C RLC 将累加器内容向左旋转1位,不带进位
200D RLC 将累加器内容向左旋转1位,不带进位
200E 莫夫H,L H
200F MOV L,A L
2010 SHLD 2050 M[2050]
2013 HLT 结束

解释—— 寄存器A、H、L用于一般用途。

  1. LHLD 2050: 以L和H分别加载存储单元2050和2051的内容。
  2. 电影A,L: 在A中移动L的内容。
  3. RLC: 将A的内容左移一位,不带进位。将当前指令重复4次,使A的内容颠倒。
  4. MOV L,A: 在洛杉矶的内容。
  5. MOV A,H: 在A中移动H的内容。
  6. RLC: 将A的内容左移一位,不带进位。将当前指令重复4次,使A的内容颠倒。
  7. MOV H,L: 移动H中L的内容。
  8. MOV L,A: 在L中移动A的内容。
  9. SHLD 2050: 在2050年存储L的含量,在2051年存储H的含量。
  10. HLT: 停止执行程序并停止任何进一步的执行。
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享