Tutorialspoint.dev

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 –

  1. Intialize memory pointer to 2050
  2. Get the most significant digit
  3. Multiply the MSD by 10 using repeated addition
  4. Add LSD to result obtained in above step
  5. 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.

  1. LXI H, 2050: will load the HL pair register with the address 2050 of memory location.
  2. MOV A, M: copies the content of memory into register A.
  3. ADD A: add the content of accumulator with itself.
  4. MOV B, A: move the content of accumulator into register B.
  5. ADD A: add the content of accumulator with itself.
  6. ADD A: add the content of accumulator with itself.
  7. ADD B: add the content of accumulator with register B and store the result in accumulator.
  8. INX H: increment register pair HL.
  9. ADD M: add the content of accumulator with memory and store the result in accumulator.
  10. INX H: increment register pair HL.
  11. MOV M, A: copies the content of accumulator into memory.
  12. HLT: stops executing the program and halts any further execution.


This article is attributed to GeeksforGeeks.org

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter