8085 program to subtract two BCD numbers
Problem – Write an assembly language program in 8085 microprocessor to subtract two 8 bit BCD numbers.
Example –
Algorithm –
- Load the data from address 2051 in A
- Move the data from A to C
- Move the data 99 in A
- Subtract the contents of registers A and C
- Increment the content of A by 1
- Move the data from A to B
- Load the data from address 2050 in A
- Add the contents of A and C and adjust it in BCD format by using DAA instruction
- Store the result at memory address 3050
- Stop
Program –
MEMORY ADDRESS | MNEMONICS | COMMENT |
---|---|---|
2000 | LDA 2051 | A <- 2051 |
2003 | MOV C, A | C <- A |
2004 | MVI A 99 | A <- 99 | 2006 | SUB C | A = A – C | 2007 | INR A | A = A + 1 |
2008 | MOV B, A | B <- A |
2009 | LDA 2050 | A <- 2050 | 200C | ADD B | A = A + B | 200D | DAA | Convert the hexadecimal value to BCD value | 200E | STA 3050 | 3050 <- A | 2011 | HLT | Stop |
Explanation –
- LDA 2051 is used to load the data from address 2051 in A.
- MOV C, A is used to move the data from A to C.
- MVI A 99 is used to move the data to register A.
- SUB C is used to subtract the contents of registers A and C.
- INR A is used to increment the content of A by 1.
- MOV B, A is used to move the data from A to B.
- LDA 2050 is used to load the data from address 2050 in A.
- ADD B is used to add the contents of registers A and B.
- DAA is used to convert the hexadecimal value in Accumulator to BCD value.
- STA 3050 is used to store the contents of A to 3050.
- HLT is used end the program.
Please Login to comment...