8085程序查找数字的平方根

2021年3月13日17:17:50 发表评论 971 次浏览

问题–在8085微处理器中编写汇编语言程序以查找数字的平方根。

示例–

8085程序查找数字的平方根1

假设–

我们需要查找其平方根的Number存储在存储位置2050中, 并将最终结果存储在存储位置3050中。

算法–

  1. 分配01到寄存器D和E
  2. 加载存储在累加器A中存储位置2050的值
  3. 从寄存器D中减去存储在累加器A中的值
  4. 检查累加器是否保持为0, 如果为true, 则跳至步骤8
  5. 寄存器D的值增加2
  6. 寄存器E的值增加1
  7. 跳至步骤3
  8. 移动存储在寄存器E中的值
  9. 将A的值存储在内存位置3050

程序–

内存地址 记忆 注释
2000 MVI D, 01 D <-01
2002 MVI E, 01 E <-01
2004 LDA 2050 A <-M [2050]
2007 SUB D A <-A – D
2008 JZ 2011 如果ZF = 0则跳转到内存位置2011
200B 印度卢比 D <-D + 1
200度 印度卢比 D <-D + 1
200D 印度卢比 E <-E + 1
200E JMP 2007 跳转到内存位置2007
2011 MOV A, E A <-E
2012 STA 3050 A-> M [3050]
2015 HLT 结束

说明–使用的寄存器A, D, E:

  1. MVI D, 01 –用01初始化寄存器D
  2. MVI E, 01 –用01初始化寄存器E
  3. LDA 2050 –将存储单元2050中的内容加载到累加器A中
  4. SUB D –从A减去D的值
  5. 2011年JZ –如果设置了零标志, 则跳转到内存位置2011
  6. INR D –将寄存器D的值加1。由于已使用两次, 因此D的值将加2。
  7. 印度卢比–将寄存器E的值加1
  8. JMP 2007 –跳转到内存位置2007
  9. MOV A, E –移动累加器A中寄存器E的值
  10. STA 3050 –在3050中存储A的值
  11. HLT –停止执行程序并停止任何进一步的执行

木子山

发表评论

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