📜  8085程序添加两个8位数字

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

问题–编写一个汇编语言程序,将8085微处理器中地址2050和地址2051上存储的两个8位数字相加。该程序的起始地址为2000。

例子 –

算法 –

  1. 将第一个数字从内存位置2050加载到累加器。
  2. 将累加器的内容移至寄存器H。
  3. 将第二个数字从内存位置2051加载到累加器。
  4. 然后使用“ ADD”指令添加寄存器H和累加器的内容,并将结果存储在3050
  5. 使用“ ADC”命令恢复生成的进位,并将其存储在存储位置3051中

程序 –

Memory Address Mnemonics Comment
2000 LDA 2050 A<-[2050]
2003 MOV H, A H<-A
2004 LDA 2051 A<-[2051]
2007 ADD H A<-A+H
2008 MOV L, A L←A
2009 MVI A 00 A←00
200B ADC A A←A+A+carry
200C MOV H, A H←A
200D SHLD 3050 H→3051, L→3050
2010 HLT  

解释 –

  1. LDA 2050将2050存储器位置的内容移至累加器。
  2. MOV H,A复制累加器的内容以将H注册到A
  3. LDA 2051将2051存储器位置的内容移至累加器。
  4. ADD H将A(累加器)和H寄存器(F9)的内容相加。结果存储在A本身中。对于所有算术指令,默认情况下A是一个操作数,A也会存储结果
  5. MOV L,A将A(34)的内容复制到L
  6. MVI A 00将立即数据(即00)移动到A
  7. ADC A将A(00)的内容,指定寄存器的内容(即A)和进位(1)相加。由于ADC也是一种算术运算,因此默认情况下A是一个操作数,A也会存储结果
  8. MOV H,A将A(01)的内容复制到H
  9. SHLD 3050将L寄存器(34)的内容移动到3050存储位置中,并将H寄存器(01)的内容移动到3051存储位置中
  10. HLT停止执行程序,并停止任何进一步的执行