8085程序减去两个带有或不带有借位的8位数字

2021年3月14日14:45:31 发表评论 1,000 次浏览

问题–编写一个程序以在第一个数字位于时减去两个带借位或不借位的8位数字2500内存地址, 第二个数字在2501内存地址并将结果存储到2502借入2503内存地址。

示例–

8085程序减去两个带有或不带有借位的8位数字1

算法

  1. 将00加载到寄存器C中(用于借用)
  2. 从内存中将两个8位数字加载到寄存器中
  3. 将一个数字移到累加器
  4. 用累加器减去第二个数字
  5. 如果借位不等于1, 请转到步骤7
  6. 借贷增量登记1
  7. 将累加器内容存储在内存中
  8. 将寄存器的内容移入累加器
  9. 将累加器的内容存储在其他存储位置
  10. 停止

程序–

内存 助记符 操作数 注释
2000 MVI C, 00 [C] <-00
2002 LHLD 2500 [H-L] <-[2500]
2005 MOV A, H [A] <-[H]
2006 SUB L [A] <-[A] – [L]
2007 JNC 200B 如果没有借位就跳
200A INR C [C] <-[C] + 1
200B STA 2502 [A]-> [2502], 结果
200E MOV A, C [A] <-[C]
2010 STA 2503 [A]-> [2503], 借用
2013 HLT 停止

说明–寄存器A, H, L, C用于一般用途:

  1. 影片用于将数据从存储器传输到累加器(1字节)
  2. 低密度脂蛋白用于直接使用16位地址(3字节指令)加载寄存器对
  3. MVI用于将数据立即移入任何寄存器(2字节)
  4. STA用于将累加器的内容存储到内存中(3字节指令)
  5. INR用于将寄存器增加1(1字节指令)
  6. 联合会如果没有借位, 则用于跳转(3字节指令)
  7. 潜艇用于减去两个数字, 其中一个数字在累加器中(1字节)
  8. HLT用于暂停程序

请参阅:8086程序减去两个带有或不带有借位的16位数字


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: