# 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 –

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

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

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.

Practice Tags :