📜  8085程序找到带有进位的2的称赞|套装2

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

问题1:在地址2050中找到2的8位数字的补码。结果存储在地址3050和3051中。程序的起始地址取为2000。

例子 –

算法 –

  1. 我们正在使用CMA指令对号码进行补充。
  2. 然后将01添加到结果中。
  3. 在添加01时生成的进位被存储在3051。

程序 –

Memory Address Mnemonics Comment
2000 LDA 2050 A←2050
2003 CMA A←compliment of A
2004 INR A A←A+01
2005 MOV L, A L←A
2006 MVI A 00 A←00
2008 ADC A A←A+A+Carry
2009 MOV H, A H←A
200A SHLD 3050 L→3050, H→3051
200D HLT

说明–使用的寄存器: A,H,L

  1. LDA 2050在A中加载2050的内容
  2. CMA称赞A的内容
  3. INR A使A增加01
  4. MOV L,A复制L中A的内容
  5. MVI A 00将A中的00移动
  6. ADC A将A,A进行进位并将其分配给A
  7. MOV H,A复制H中A的内容
  8. SHLD 3050将H的值存储在存储器单元3051中,将L的值存储在3050中
  9. HLT停止执行程序,并停止任何进一步的执行

问题2:在地址2050和2051中找到2的16位数字的补码。结果存储在地址3050、3051和3052中。程序的起始地址取为2000。

例子 –

算法 –

  1. 我们正在使用CMA指令来补充数字。
  2. 然后使用INX指令将0001加到结果中。
  3. 在加0001时生成的进位被存储在3052。

程序 –

Memory Address Mnemonics Comment
2000 LHLD 2050 L←2050, H←2051
2003 MOV A, L A←L
2004 CMA A←compliment of A
2005 MOV L, A L←A
2006 MOV A, H A←H
2007 CMA A←Compliment of A
2008 MOV H, A H←A
2009 INX H HL←HL+0001
200A MVI A 00 A←00
200C ADC A A←A+A+Carry
200D SHLD 3050 L→3050, H→3051
2010 STA 3052 A→3052
2013 HLT

说明–使用的寄存器: A,H,L

  1. LHLD 2050的H含量为2051,L的含量为2050
  2. MOV A,L复制A中L的内容
  3. CMA称赞A的内容
  4. MOV L,A复制L中A的内容
  5. MOV A,H复制A中H的内容
  6. CMA称赞A的内容
  7. MOV H,A复制H中A的内容
  8. INX H在HL中加0001
  9. MVI A 00将A中的00移动
  10. ADC A加A,A,进位并将结果存储在A中
  11. SHLD 3050将H的值存储在内存位置3051中,将L的值存储在3050中
  12. STA 3052在存储位置3052中存储A的值
  13. HLT停止执行程序,并停止任何进一步的执行

参考– 8085程序以找到8位数字的1和2的补码
8085程序查找16位数字的1和2的补码