8085 program to access and exchange the content of Flag register with register B

Problem – Write an assembly language program in 8085 microprocessor to access Flag register and exchange the content of flag register F with register B.

Example –



Assumptions – Initial values of flag register, register B and stack pointer are is 00, 3F, and 3FFF respectively.

PSW stands for PROGRAM STATUS WORD. PSW combines accumulator A and flag register F.

Algorithm –

  1. Push the value of PSW in memory stack by help of PUSH instruction
  2. Pop the value of Flag register and store it in register H by help of POP instruction
  3. Move the value of register H in register C
  4. Move the value of register B in register H
  5. Move the value of register C in register B
  6. Push the value of register H in memory stack by help of PUSH instruction
  7. Pop the value of PSW from memory stack using POP instruction

Program –

MEMORY ADDRESS MNEMONICS COMMENT
2000 PUSH PSW Push value of accumulator and flag in stack
2001 POP H Pop value from TOP of memory stack in H
2002 MOV C, H C <- H
2003 MOV H, B H <- B
2004 MOV B, C B <- C
2005 PUSH H Push the value of register H
2006 POP PSW Pop value of flag register and Accumulator
2007 HLT END

Explanation – Registers used A, B, C, H, F

  1. PUSH PSW instruction performs the following task:
        SP <- SP - 1
        M[SP] <- A
        SP <- SP - 1
        M[SP] <- F
  2. POP H instruction performs the following task:
        H <- M[SP]
        SP <- SP + 1
  3. MOV C, H – moves the value of H in register C
  4. MOV H, B – moves the value of B in register H, hence H is updated
  5. MOV B, C – moves the value of C in register B, hence B is updated
  6. PUSH H performs the following task:
        SP <- SP - 1
        M[SP] <- H
  7. POP PSW performs the following task:
     
        F <- M[SP]
        SP <- SP + 1
        A <- M[SP]
        SP <- SP + 1
  8. HLT – stops executing the program and halts any further execution


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.