- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
8085 Program to convert a 16-bit binary number to BCD
Now let us see a program of Intel 8085 Microprocessor. In this program we will see how to convert 16-bit binary data to BCD data.
Problem Statement:
Write 8085 Assembly language program to convert 16-bit binary data to BCD data. The binary data is stored at location 8000H and 8001H.
Discussion:
This problem is solved by implementing 16-bit counter. We are storing the 16-bit number at first, then decreasing the numbers one by one, and increasing the decimal value by adjusting the decimal value. To increase the value, we can use the INR instruction, but INR instruction does not affect the carry flag. So here we are using ADI 01H for increasing it by 1.
The binary number is taken from location 8000H and 8001H, and the final result is stored at location 8050H to 8052H.
Input:
Address | Data |
---|---|
. . . | . . . |
8000 | FF |
8001 | FF |
. . . | . . . |
Flow Diagram:
Program:
Address | HEX Codes | Labels | Mnemonics | Comments |
---|---|---|---|---|
F000 | 2A, 00, 80 | LHLD 8000H | Initialize HL with 16-bit data | |
F003 | 11, 00, 00 | LXI D,0000H | Clear DE register | |
F006 | AF | XRA A | Clear A register | |
F007 | C6, 01 | LOOP | ADI 01H | Add 01 with A |
F009 | 21 | DAA | Adjust decimal | |
F00A | 47 | MOV B,A | Store A to B | |
F00B | D2, 1B, F0 | JNC SKIP | If CY = 0, go to skip | |
F00E | 7B | MOV A,E | Load E to A | |
F00F | C6, 01 | ADI 01H | Add 01H with A | |
F011 | 27 | DAA | Decimal adjust | |
F012 | 5F | MOV E,A | Get E from A | |
F013 | D2, 1B,F0 | JNC SKIP | If CY = 0, go to skip | |
F016 | 7A | MOV A,D | Take D to A | |
F017 | C6, 01 | ADI 01H | Add 01H with A | |
F019 | 27 | DAA | Adjust decimal | |
F01A | 57 | MOV D,A | Load A to D | |
F01B | 2B | SKIP | DCX H | Decrease DE |
F01C | 7C | MOV A,H | Load H to A | |
F01D | 85 | ORA L | OR A and L | |
F01E | 78 | MOV A,B | Load B to A | |
F01F | C2, 07, F0 | JNZ LOOP | Jump to Loop | |
F022 | EB | XCHG | Exchange DE and HL | |
F023 | 22, 51, 80 | SHLD 8051H | Store HL content into memory | |
F026 | 32, 50, 80 | STA 8050H | Store A to memory | |
F029 | 76 | HLT | Terminate the program |
Output:
Address | Data |
---|---|
. . . | . . . |
8050 | 35 |
8051 | 55 |
8052 | 06 |
. . . | . . . |
- Related Articles
- Program to convert a 16-bit binary number to BCD in 8085 Microprocessor
- 8085 Program to convert an 8-bit binary to BCD
- 8085 program to convert 8 bit BCD number into ASCII Code
- 8085 Program to convert a two-digit BCD to binary
- 8085 program to unpack 16-bit BCD, and store consecutive locations
- 8085 program to reverse 16 bit number
- 8085 Program to multiply two 16-bit binary numbers
- 8085 Program to Divide a 16-bit number by an 8-bit number
- Program to multiply two 16-bit binary numbers in 8085 Microprocessor
- 8085 Program to convert BCD to HEX
- 8085 Program to convert HEX to BCD
- 8086 program to convert an 8 bit BCD number into hexadecimal number
- 8086 program to subtract two 16 bit BCD numbers
- 8085 program to convert an 8 bit number into Grey number
- Program to convert BCD to HEX in 8085 Microprocessor
