8085 program to convert a BCD number to binary
Last Updated :
20 Nov, 2019
Problem – Write an assembly language program for converting a 2 digit BCD number to its binary equivalent using 8085 microprocessor.
Examples:
Input : 72H (0111 0010)2
Output : 48H (in hexadecimal) (0011 0000)2
((4x16)+(8x1))=72
Algorithm:
- Load the BCD number in the accumulator
- Unpack the 2 digit BCD number into two separate digits. Let the left digit be BCD1 and the right one BCD2
- Multiply BCD1 by 10 and add BCD2 to it
If the 2 digit BCD number is 72, then its binary equivalent will be
7 x OAH + 2 = 46H + 2 = 48H
Steps:
- Load the BCD number from the memory location (201FH, arbitrary choice) into the accumulator
- Temporarily store the accumulator’s value in B
- Obtain BCD2 by ANDing the accumulator with 0FH and store it in C
- Restore the original value of the accumulator by moving the value in B to A. AND the accumulator with F0H
- If the value in the accumulator equals 0, then BCD2 is the final answer and store it in the memory location, 2020H (arbitrary)
- Else, shift the accumulator to right 4 times to obtain BCD1. Next step is to multiply BCD1 by 0AH
- Multiplication: Move BCD1 to D and initialise E with 0AH as the counter. Clear the accumulator to 0 and add D to it E number of times
- Finally, add C to the accumulator and store the result in 2020H
2020H contains the result.
ADDRESS
|
LABEL
|
MNEMONIC
|
2000H
|
|
LDA 201FH
|
2001H
|
|
|
2002H
|
|
|
2003H
|
|
MOV B, A
|
2004H
|
|
ANI 0FH
|
2005H
|
|
|
2006H
|
|
MOV C, A
|
2007H
|
|
MOV A, B
|
2008H
|
|
ANI F0H
|
2009H
|
|
|
200AH
|
|
JZ SKIPMULTIPLY
|
200BH
|
|
|
200CH
|
|
|
200DH
|
|
RRC
|
200EH
|
|
RRC
|
200FH
|
|
RRC
|
2010H
|
|
RRC
|
2011H
|
|
MOV D, A
|
2012H
|
|
XRA A
|
2013H
|
|
MVI E, 0AH
|
2014H
|
|
|
2015H
|
SUM
|
ADD D
|
2016H
|
|
DCR E
|
2017H
|
|
JNZ SUM
|
2018H
|
|
|
2019H
|
|
|
201AH
|
SKIPMULTIPLY
|
ADD C
|
201BH
|
|
STA 2020H
|
201CH
|
|
|
201DH
|
|
|
201EH
|
|
HLT
|
Store the BCD number in 201FH. 2020H contains its binary equivalent.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...