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.
Advantages:
- This program is efficient and easy to understand, making it accessible for programmers with varying levels of experience.
- The program handles a common conversion operation that may be useful in various applications.
- The program can be easily modified to handle different input sizes or output formats.
- The program outputs the result in ASCII format, which is easy to display or manipulate in software.
Disadvantages:
- The program assumes that the input is an 8-bit BCD number and does not handle other input formats.
- The program outputs the result in ASCII format, which may not be suitable for all use cases.
- The program assumes that the output location is fixed and does not allow for dynamic memory allocation.
- The program does not check for errors or handle exceptional cases, such as invalid input or overflow situations.
Last Updated :
11 Apr, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...