📜  8085程序打印输入整数表

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

问题–在8085中编写汇编语言程序以打印输入整数表。

假设–假设输入的号码位于存储位置2050,并且将从起始位置3050开始打印表格。

例子 –

算法 –

  1. 从存储位置2050将输入的值加载到累加器中,然后将其复制到另一个寄存器D中,并将0A存储在寄存器B中。
  2. 使用LXI指令将内存位置3050存储在M中,并取另一个值为C的寄存器C。
  3. 现在将D寄存器的内容复制到A,并将A和C的内容相加并存储在A中,然后将其复制到M。
  4. M的值增加1。
  5. 将A的内容复制到C,并将B的内容减1,如果B的值为0,则暂停,否则再次转到步骤3。

程序 –

ADDRESS MNEMONICS COMMENTS
2000 LDA 2050 A<-[2050]
2003 MOV D, A D<-[A]
2004 MVI B 0A B<-0A
2006 LXI H 3050 H<-30 & L<-50
2009 MVI C 00 C<-00
200B MOV A, D A<-[D]
200C ADD C A<-[A]+[C]
200D MOV M, A M<-[A]
200E INX H HL<-HL+1
200F MOV C, A C<-[A]
2010 DCR B B<-[B]-1
2011 JNZ 200B Jump to address 200B if ZF=0
2014 HLT Terminates the program

解释 –

  1. LDA 2050:将内容从2050存储器位置加载到累加器(寄存器A)。
  2. MOV D,A:将累加器的内容移至寄存器D。
  3. MVI B 0A:将0A数据存储到寄存器B中。
  4. LXI H 3050:将30存储在H寄存器中,将50存储在L寄存器中,因此M将在其中包含3050。
  5. MVI C 00:将00数据存储在寄存器C中。
  6. MOV A,D:将D寄存器的内容移至A。
  7. 添加C:将A和C寄存器的内容相加并存储在A中。
  8. MOV M,A:将A寄存器的内容移到M。
  9. INX H:将M的内容增加1。
  10. MOV C,A:将A寄存器的内容移至C。
  11. DCR B:将B寄存器的内容减1。
  12. JNZ 200B:如果进位标志不为零,则跳转到地址200B。
  13. HLT:终止程序。