8085程序,用于计算寄存器B内容中的个数

问题—— 编写一个汇编语言程序,计算寄存器B内容中的个数,并将结果存储在存储器位置3050。

null

例如——

图片[1]-8085程序,用于计算寄存器B内容中的个数-yiteyi-C++库

算法-

  • 将累加器中的十进制数转换为等价的二进制数
  • 将二进制数的数字向右旋转,不带进位
  • 应用循环直到计数不为零,以更改D寄存器和计数的值
  • 将D寄存器的值复制到累加器并存储结果

项目-

内存地址 助记符 评论
2000 MVI B 75 B← 75
2002 MVI C 08 C← 75
2004 MVI D 00 D← 00
2006 电影A,B A.← B
2007 RRC 无需携带即可右转
2008 JNC 200C 不带就跳
200B 印度卢比 D← D+1
200C DCR C C← C-1
200D JNZ 2007 如果不是零跳
2010 莫夫A,D A.← D
2011 STA 3050 A.→ 3050
2014 HLT 停止执行

解释——

  1. MVI B 75 将75位十进制数移到B寄存器中
  2. MVI C 08 将08位十进制数移到C寄存器中,该寄存器作为计数器,因为数字为8位
  3. MVI D 00 将00号移到d寄存器中
  4. 电影A,B 将B寄存器的内容移到A(累加器)寄存器中
  5. RRC 向右旋转A的内容(它是75,二进制等价物为0111011) 图片[2]-8085程序,用于计算寄存器B内容中的个数-yiteyi-C++库
  6. JNC 200C 如果进位标志不为零,跳转到200C地址并执行写在那里的指令
  7. 印度卢比 通过向D寄存器的内容中添加一个来增加D寄存器的值
  8. DCR C 通过从C寄存器的内容中减去一来减少C寄存器的值
  9. JNZ 2007 跳转到2007地址,如果零标志不是零,则执行其中写入的指令
  10. 莫夫A,D 将B寄存器的内容移到寄存器中
  11. STA 3050 将文件的内容存储在3050内存位置
  12. HLT 停止执行
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享