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

📅  最后修改于: 2021-06-28 14:36:43             🧑  作者: Mango

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

例子 –

假设–
我们需要查找其平方根的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

程序 –

MEMORY ADDRESS MNEMONICS COMMENT
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 Jump if ZF = 0 to memory location 2011
200B INR D D <- D + 1
200C INR D D <- D + 1
200D INR E E <- E + 1
200E JMP 2007 Jump to memory location 2007
2011 MOV A, E A <- E
2012 STA 3050 A -> M[3050]
2015 HLT END

说明–使用的寄存器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. JZ 2011 –如果设置了零标志,则跳转到内存位置2011
  6. INR D –将寄存器D的值加1。由于已使用两次,因此D的值将加2。
  7. INR E –将寄存器E的值加1
  8. JMP 2007 –跳转到内存位置2007
  9. MOV A,E –移动累加器A中寄存器E的值
  10. STA 3050 –在3050中存储A的值
  11. HLT –停止执行程序,并停止任何进一步的执行