8085 program to convert an 8 bit BCD number into hexadecimal number
Problem – Write an assembly language program in 8085 microprocessor to convert an 8 bit BCD number into hexadecimal number.
Assumptions – Assume that starting address of the program is 2000, input memory locations, 2050, 2051, and output memory location is 2052.
Example –
INPUT: 2050:02H 2051: 09H OUTPUT:2052: 1DH
Algorithm –
- Initialize memory pointer to 2050
- Get the most significant digit
- Multiply the MSD by 10 using repeated addition
- Add LSD to result obtained in above step
- Store the converted result in memory 2052
Program –
Memory Address | Mnemonics | Comments |
---|---|---|
2000 | LXI H, 2050 | |
2003 | MOV A, M | A<-M |
2004 | ADD A | A<-A+A |
2005 | MOV B, A | B<-A |
2006 | ADD A | A<-A+A |
2007 | ADD A | A |
2008 | ADD B | A<-A+B |
2009 | INX H | |
200A | ADD M | A<-A+M |
200B | INX H | |
200C | MOV M, A | M<-A |
200D | HLT | TERMINATE THE PROGRAM |
Explanation – Registers H, L, B, A are used for general purpose.
- LXI H, 2050: will load the HL pair register with the address 2050 of memory location.
- MOV A, M: copies the content of memory into register A.
- ADD A: add the content of accumulator with itself.
- MOV B, A: move the content of accumulator into register B.
- ADD A: add the content of accumulator with itself.
- ADD A: add the content of accumulator with itself.
- ADD B: add the content of accumulator with register B and store the result in accumulator.
- INX H: increment register pair HL.
- ADD M: add the content of accumulator with memory and store the result in accumulator.
- INX H: increment register pair HL.
- MOV M, A: copies the content of accumulator into memory.
- HLT: stops executing the program and halts any further execution.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.