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.
Last Updated :
18 May, 2018
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...