8085 program to find 2’s complement of the contents of Flag Register

Problem – Write an assembly language program in 8085 microprocessor to find 2’s complement of the contents of Flag Register.

Example –

Algorithm –

  1. Initialize the value of Stack Pointer (SP) to 3999
  2. Push the contents of PSW (Register pair formed by Accumulator and Flag Register) into the memory stack
  3. Pop the contents from the stack into register pair BC
  4. Move the contents of register C to A
  5. Take 1’s complement of the contents of A
  6. Increment the contents of A by 1
  7. Move the contents of A to C
  8. Push the contents of register pair BC into the stack
  9. Pop the contents of stack into PSW
  10. Stop

Program –

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

Explanation –

  1. LXI SP 3999 is used to initialize the value of Stack Pointer(SP) to 3999.
  2. PUSH PSW is used to push the contents of PSW into the memory stack.
  3. POP B is used to pop the contents from the top of stack into register pair BC.
  4. MOV A, C moves the contents of register C to A.
  5. CMA takes 1’s complement of the contents of A.
  6. INR A increments the contents of A by 1.
  7. MOV C, A moves the contents of A to C.
  8. PUSH B is used to push the contents of register pair BC into the stack.
  9. POP PSW is used to pop the contents of stack into PSW.
  10. HLT is used to end the program.


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.