📌  相关文章
📜  8085程序,用于将位块从源位置移动到目标位置

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

问题–编写一个程序,将位的块从2500开始的源位置移动到2600以后的目标位置,其中块的大小为05字节。

例子 –

算法 –

  1. 地址为2500H的加载寄存器对HL
  2. 将地址为2600H的寄存器对DE装入
  3. 将内存位置的内容移到累加器中
  4. 将累加器的内容存储到DE指向的内存中
  5. 寄存器对HL和DE的值增加1
  6. 将寄存器C的值减1
  7. 如果零标志不等于1,请转到步骤3
  8. 停止

程序 –

Memory Mnemonics Operands Comment
2000 MVI C, 05 [C] <- 05
2002 LXI H, 2500 [H-L] <- 2500
2005 LXI D, 2600 [D-E] <- 2600
2008 MOV A, M [A] <- [[H-L]]
2009 STAX D [A] -> [[D-E]]
200A INX H [H-L] <- [H-L] + 1
200B INX D [D-E] <- [D-E] + 1
200C DCR C [C] <- [C] – 1
200D JNZ 2008 Jump if not zero to 2008
2010 HLT Stop

说明–寄存器A,D,E,H,L,C用于一般用途:

  1. MOV用于将数据从内存传输到累加器(1字节)
  2. LXI用于立即使用16位地址(3字节指令)加载寄存器对
  3. MVI用于将数据立即移入任何寄存器(2字节)
  4. STAX用于将累加器间接存储到寄存器对中(3字节指令)
  5. DCR用于将寄存器减少1(1字节指令)
  6. INX用于将寄存器对增加1(1字节指令)
  7. 如果不为零,则使用JNZ跳转到给定的存储器位置(3字节指令)
  8. HLT用于暂停程序