# 8085 program to convert 8 bit BCD number into ASCII Code

Problem – Write an assembly level language program to convert 8 bit BCD number to its respective ACSII Code.

Assumptions –
Input memory location: 2050
Output memory location: 3050 and 3051

ASCII Code for Digits 0 – 9

Example –

Algorithm –

1. Input the content of 2050 in accumulator
2. Move content of Accumulator to register B
3. Separate the least significant digit using AND with 0F and ADD 30 to accumulator
4. Store content of accumulator to memory location 3050
5. Move content of register B to Accumulator
6. Separate the most significant digit using AND with F0
7. Rotate Content of Accumulator 4 times
9. Store content of accumulator to memory location 3051

Program –

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 –

1. LDA 2050 load the content of memory location 2050 to accumulator
2. MOV B, A copy the content of accumulator to register B
3. ANI 0F AND the content of accumulator with immediate data 0F
5. STA 3050 store the content of accumulator to memory location 3050
6. MOV A, B copy the content of register B to accumulator
7. ANI F0 AND the content of accumulator with immediate data F0
8. RLC rotate the content of accumulator left without carry
9. RLC rotate the content of accumulator left without carry
10. RLC rotate the content of accumulator left without carry
11. RLC rotate the content of accumulator left without carry
13. STA 3051 store the content of accumulator to memory location 3051
14. HLT stops the execution of program