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.
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.
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||2007||HLT||END|
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