📜  8085程序查找标志寄存器内容的2的补码

📅  最后修改于: 2021-06-28 19:26:16             🧑  作者: Mango

问题–在8085微处理器中编写汇编语言程序,以查找标志寄存器内容的2的补码。

例子 –

算法 –

  1. 初始化堆栈指针(SP)的值为3999
  2. 将PSW(由累加器和标志寄存器组成的寄存器对)的内容压入存储器堆栈
  3. 将堆栈中的内容弹出到寄存器对BC中
  4. 将寄存器C的内容移至A
  5. 取A的内容的1的补码
  6. 将A的内容加1
  7. 将A的内容移到C
  8. 将寄存器对BC的内容推入堆栈
  9. 将堆栈内容弹出到PSW中
  10. 停止

程序 –

MEMORY ADDRESS MNEMONICS COMMENT
2000 LXI SP 3999 SP <- 3999
2003 PUSH PSW PUSH value of Accumulator and Flag into the stack
2004 POP B POP value from Top of stack into register pair BC 2005 MOV A, C A <- C 2006 CMA A = 1’S complement of A 2007 INR A A = A + 1 2008 MOV C, A C <- A 2009 PUSH B PUSH value of register pair BC into stack 200A POP PSW POP value from Top of stack into Accumulator and Flag 200B HLT Stop

解释 –

  1. LXI SP 3999用于将堆栈指针(SP)的值初始化为3999。
  2. PUSH PSW用于将PSW的内容压入存储器堆栈。
  3. POP B用于将堆栈顶部的内容弹出到寄存器对BC中。
  4. MOV A,C将寄存器C的内容移至A。
  5. CMA采用A的内容的1的补码。
  6. INR A将A的内容增加1。
  7. MOV C,A将A的内容移动到C。
  8. PUSH B用于将寄存器对BC的内容压入堆栈。
  9. POP PSW用于将堆栈的内容弹出到PSW中。
  10. HLT用于结束程序。