📜  8085程序将8位BCD编号转换为十六进制编号

📅  最后修改于: 2021-06-28 09:38:58             🧑  作者: Mango

问题–在8085微处理器中编写汇编语言程序,以将8位BCD数转换为十六进制数。

假设–假定程序的起始地址为2000,输入存储位置为2050、2051,输出存储位置为2052。

例子 –

INPUT: 2050:02H
       2051: 09H

OUTPUT:2052: 1DH 

算法 –

  1. 初始化指向2050的内存指针
  2. 获取最高有效位数
  3. 使用重复加法将MSD乘以10
  4. 将LSD添加到以上步骤中获得的结果中
  5. 将转换后的结果存储在存储器2052中

程序 –

Memory Address Mnemonics Comments
2000 LXI H, 2050
2003 MOV A, M A<-M
2004 ADD A A<-A+A
2005 MOV B, A B<-A
2006 ADD A A<-A+A
2007 ADD A A
2008 ADD B A<-A+B
2009 INX H
200A ADD M A<-A+M
200B INX H
200C MOV M, A M<-A
200D HLT TERMINATE THE PROGRAM

说明–寄存器H,L,B,A用于一般用途。

  1. LXI H,2050:将用存储单元的地址2050加载HL对寄存器。
  2. MOV A,M:将存储器的内容复制到寄存器A中。
  3. 添加A:将累加器的内容与其自身相加。
  4. MOV B,A:将累加器的内容移到寄存器B中。
  5. 添加A:将累加器的内容与其自身相加。
  6. 添加A:将累加器的内容与其自身相加。
  7. ADD B:将累加器的内容与寄存器B相加,并将结果存储在累加器中。
  8. INX H:增量寄存器对HL。
  9. 添加M:将累加器的内容与内存相加,并将结果存储在累加器中。
  10. INX H:增量寄存器对HL。
  11. MOV M,A:将累加器的内容复制到内存中。
  12. HLT:停止执行程序,并停止任何进一步的执行。