Problem – Write an assembly language program in 8085 microprocessor to access Flag register and exchange the content of flag register F with register B.
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.
- Push the value of PSW in memory stack by help of PUSH instruction
- Pop the value of Flag register and store it in register H by help of POP instruction
- Move the value of register H in register C
- Move the value of register B in register H
- Move the value of register C in register B
- Push the value of register H in memory stack by help of PUSH instruction
- Pop the value of PSW from memory stack using POP instruction
|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|
Explanation – Registers used A, B, C, H, F
- PUSH PSW instruction performs the following task:
SP <- SP - 1 M[SP] <- A SP <- SP - 1 M[SP] <- F
- POP H instruction performs the following task:
H <- M[SP] SP <- SP + 1
- MOV C, H – moves the value of H in register C
- MOV H, B – moves the value of B in register H, hence H is updated
- MOV B, C – moves the value of C in register B, hence B is updated
- PUSH H performs the following task:
SP <- SP - 1 M[SP] <- H
- POP PSW performs the following task:
F <- M[SP] SP <- SP + 1 A <- M[SP] SP <- SP + 1
- 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.