# 8085 Program to convert a two-digit BCD to binary

In this program we will see how to convert BCD numbers to binary equivalent.

### Problem Statement

A BCD number is stored at location 802BH. Convert the number into its binary equivalent andstore it to the memory location 802CH.

### Discussion

In this problem we are taking a BCD number from the memory and converting it to its binaryequivalent. At first we are cutting each nibble of the input. So ifthe input is 52 (0101 0010) then we can simply cut it by masking the number by 0FH and F0H. When the Higher order nibble is cut, thenrotate it to the left four times to transfer it to lower nibble.

Now simply multiply the numbers by using decimal adjust method to get final decimal result.

.
.
.
.
.
.
802B52
.
.
.
.
.
.

### Program

800031, FF, 80
LXI SP,80FFHInitialize stack pointer
800321, 2B, 80
LXI H, 802BH Pointer to the IN-BUFFER
800601, 2C, 80
LXI B, 802CH Pointer to the OUT-BUFFER
80097E
MOV A, M Move the contents of 802BH to A
800A CD, 0F, 80
CALL BCDBINSubroutine to convert a BCD number to HEX
800D 02
STAX B Store Acc to memory location pointed by BC
800E76
HLT Terminate the program
800F C5 BCDBINPUSH B Saving B
801047
MOV B, A Copy A to B
8011E6, 0F
ANI 0FH Mask of the most significant four bits
80134F
MOV C, A Copy A to C
801478
MOV A, B Copy B to A
8015E6, F0
ANI F0H Mask of the least significant four bits
80170F
RRC Rotate accumulator right 4 times
80180F
RRC
80190F
RRC
801A 0F
RRC
801B 57
MOV D, A Load the count value to the Reg. D
801C AF
XRA A Clear the contents of the accumulator
801D 1E, 0A
MVI E, 0AH Initialize Reg. E with 0AH
802015
DCR D Decrement the count by 1 until 0 is reached
8021C2, 1F, 80
JNZ SUM
802481
8025C1
POP B Restoring B
8026C9
RET Returning control to the calling program

### Output

.
.
.
.
.
.
802C34
.
.
.
.
.
.

Updated on: 30-Jul-2019

2K+ Views