- 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
Program to convert a 16-bit binary number to BCD in 8085 Microprocessor
Here we will see one 8085 Microprocessor program. This program will be used to convert 16-bit binary data to BCD data.
Problem Statement −
Write an 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
- 8085 Program to convert a 16-bit binary number to BCD
- 8085 Program to convert an 8-bit binary to BCD
- Program to multiply two 16-bit binary numbers in 8085 Microprocessor
- Program to convert BCD to HEX in 8085 Microprocessor
- Program to convert HEX to BCD in 8085 Microprocessor
- 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
- Program to convert ASCII to binary in 8085 Microprocessor
- 8085 program to reverse 16 bit number
- 8085 Program to multiply two 16-bit binary numbers
- Program for adding 4 hex digits of a 16-bit number in 8085 Microprocessor
- 8085 Program to Divide a 16-bit number by an 8-bit number
- 8085 Program to convert BCD to HEX
- 8085 Program to convert HEX to BCD
