📜  8085程序将两个8位数字相除

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

问题–编写8085程序将两个8位数字相除。

例子 –

算法 –

  1. 通过将存储位置的地址加载到HL对寄存器来启动程序。
  2. 将数据移至B寄存器。
  3. 将第二个数据加载到累加器中。
  4. 比较两个数字以检查进位。
  5. 减去两个数字。
  6. 增加进位值。
  7. 检查重复减法是否结束。
  8. 然后将结果(商和余数)存储在给定的内存位置。
  9. 终止程序。

程序 –

ADDRESS MNEMONICS COMMENT
2000 LXI H, 2050
2003 MOV B, M B<-M
2004 MVI C, 00 C<-00H
2006 INX H
2007 MOV A, M A<-M
2008 CMP B
2009 JC 2011 check for carry
200C SUB B A<-A-B
200D INR C C<-C+1
200E JMP 2008
2011 STA 3050 3050<-A
2014 MOV A, C A<-C
2015 STA 3051 3051<-A
2018 HLT terminate the program

说明–寄存器A,H,L,C,B用于通用。

  1. LXI H 2050将用存储单元的地址2050加载HL对寄存器。
  2. MOV B,M将存储器的内容复制到寄存器B中。
  3. MVI C,00将C分配为00。
  4. INX H增量寄存器对HL。
  5. MOV A,M将存储器的内容复制到累加器中。
  6. CMP B比较累加器和寄存器B的内容。
  7. 如果设置了进位标志,则JC 2011跳转到地址2011。
  8. SUB B用寄存器B减去累加器的内容,并将结果存储在累加器中。
  9. INR C使寄存器C递增。
  10. JMP 2008控件将转移到内存地址2008。
  11. STA 3050将其余部分存储在内存位置3050中。
  12. MOV A,C将寄存器的内容复制到累加器中。
  13. STA 3051将其余部分存储在存储器位置3051中。
  14. HLT停止执行程序,并停止任何进一步的执行。