8085 program to convert 8 bit BCD number into ASCII Code
Last Updated :
11 Jul, 2025
Problem – Write an assembly-level language program to convert 8-bit BCD number to its respective ASCII Code.
Assumptions -
Starting address of program: 2000
Input memory location: 2050
Output memory location: 3050 and 3051
ASCII Code for Digits 0 – 9

Example -

Algorithm -
- Input the content of 2050 in accumulator
- Move content of Accumulator to register B
- Separate the least significant digit using AND with 0F and ADD 30 to accumulator
- Store content of accumulator to memory location 3050
- Move content of register B to Accumulator
- Separate the most significant digit using AND with F0
- Rotate Content of Accumulator 4 times
- ADD 30 to accumulator
- Store content of accumulator to memory location 3051
Program -
Address | Mnemonics | Comments |
---|
2000 | LDA 2050 | A <- [2050] |
2003 | MOV B, A | B <- A |
2004 | ANI 0F | A <- A & 0F |
2006 | ADI 30 | A <- A + 30 |
2008 | STA 3050 | [3050]<-A |
200B | MOV A, B | A <- B |
200C | ANI F0 | A <- A & F0 |
200E | RLC | Rotate A left |
200F | RLC | Rotate A left |
2010 | RLC | Rotate A left |
2011 | RLC | Rotate A left |
2012 | ADI 30 | A <- A + 30 |
2014 | STA 3051 | [3051]<-A |
2017 | HLT | Stop Execution |
Explanation -
- LDA 2050 load the content of memory location 2050 to accumulator
- MOV B, A copy the content of accumulator to register B
- ANI 0F AND the content of accumulator with immediate data 0F
- ADI 30 ADD 30 to accumulator
- STA 3050 store the content of accumulator to memory location 3050
- MOV A, B copy the content of register B to accumulator
- ANI F0 AND the content of accumulator with immediate data F0
- RLC rotate the content of accumulator left without carry
- RLC rotate the content of accumulator left without carry
- RLC rotate the content of accumulator left without carry
- RLC rotate the content of accumulator left without carry
- ADI 30 ADD 30 to accumulator
- STA 3051 store the content of accumulator to memory location 3051
- HLT stops the execution of program
Advantages:
Simple: The program is relatively short and easy to understand. It doesn't require any complex operations or calculations, making it easy to implement.
Efficient: The program uses only a few instructions, so it executes quickly and doesn't require much memory.
Useful: The program can be used in a variety of applications where BCD to ASCII conversion is required, such as in digital displays or in communication with other devices.
Disadvantages:
Limited input range: The program can only handle 8-bit BCD numbers, which limits its usefulness in some applications.
Limited output range: The program can only output ASCII codes for the tens and ones digits of the BCD number, which limits its usefulness in some applications.
Requires additional code: If the program is used in a larger application, additional code may be needed to input the BCD number, output the ASCII code, and handle any errors or exceptions.