📜  8085程序查找8位数字的平方

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

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

例子 –

假设–输入数据和输出数据的地址分别为2050和3050。

方法–合并寄存器H和L的内容,结果内容可用于间接指向存储器位置,并且该存储器位置由M指定。要查找任何数字的平方,请继续在最初包含以下内容的累加器A中添加该数字0乘以我们需要查找其平方的次数。

算法 –

  1. 将20分配给寄存器H,将50分配给寄存器L,将00分配给累加器A
  2. 加载由寄存器B中的M指定的存储单元的内容
  3. 将累加器A中的M内容与B的减值相加01
  4. 检查B是否持有00,如果为true,则将A的值存储在内存位置3050中,否则转到步骤3

程序 –

MEMORY ADDRESS MNEMONICS COMMENT
2000 MVI H 20 H <- 20
2002 MVI L 50 L <- 50
2004 MVI A 00 A <- 00
2006 MOV B, M B <- M
2007 ADD M A <- A + M
2008 DCR B B <- B – 01
2009 JNZ 2007 Jump if ZF = 0
200C STA 3050 M[3050] <- A
200F HLT END

说明–使用的寄存器A,H,L,B和间接存储器M:

  1. MVI H 20 –用20初始化寄存器H
  2. MVI L 50 –用50初始化寄存器L
  3. MVI A 00 –用00初始化累加器A
  4. MOV B,M –移动由寄存器B中的M间接指定的存储位置的内容
  5. ADD M –添加累加器A中由M间接指定的存储位置的内容
  6. DCR B –寄存器B的值减1
  7. JNZ 2007 –如果ZF = 0,则跳至内存位置2007,即寄存器B不包含0
  8. STA 3050 –在3050中存储A的值
  9. HLT –停止执行程序,并停止任何进一步的执行