- 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 two-digit hex to two ASCII values
Now let us see a program of Intel 8085 Microprocessor. This program will convert 8-bit numbers to two digit ASCII values.
Problem Statement
Write 8085 Assembly language program where an 8-bit binary number is stored in memory location 8050H. Separate each nibbles and convert it to corresponding ASCII code and store it to the memory location 8060H and 8061H.
Discussion
In this problem we are using a subroutine to convert one hexa-decimal digit (nibble) to its equivalent ASCII values. As the 8-bit number contains two nibbles, so we can execute this subroutine to find ASCII values of them. We can get the lower nibble very easily by masking the upper nibble, and for the upper nibble, we have to mask the lower nibble at first, then rotate the register content dour times to the right to make, now we can change it to ASCII values.
Here we will put 3AH as input, the program will return 33 and 41. These are the ASCII values of 3 and A respectively.
Input
Address | Data |
---|---|
. . . | . . . |
8050 | 3A |
. . . | . . . |
Flow Diagram
Program
Address | HEX Codes | Labels | Mnemonics | Comments |
---|---|---|---|---|
8000 | 31, 00, 81 | LXI SP, 8100 | Initialize SP | |
8003 | 21, 50, 80 | START | LXI H, 8050H | Initialize pointer with the first location of IN-BUFFER |
8006 | 11, 60, 80 | LXI D, 8060H | Initialize pointer with the first location of OUT-BUFFER | |
8009 | 7E | MOV A, M | Move the contents of 8050H to A | |
800A | 47 | MOV B, A | Copy A to B | |
800B | 0F | RRC | Rotate accumulator right 4 times | |
800C | 0F | RRC | ||
800D | 0F | RRC | ||
800E | 0F | RRC | ||
800F | CD, 1A, 80 | CALL ASCII | This subroutine converts a binary no. toASCII | |
8012 | 12 | STAX D | Store the contents of the accumulator specified the contents by DE register pair | |
8013 | 13 | INX D | Go to next location | |
8014 | 78 | MOV A, B | Copy B to A | |
8015 | CD, 1A, 80 | CALL ASCII | This subroutine converts a binary no. toASCII | |
8018 | 12 | STAX D | Store the contents of the accumulator specified the contents by DE register pair | |
8019 | 76 | HLT | Terminate the program | |
801A | E6, 0F | ASCII | ANI 0FH | Converts a BCD number to its corresponding ASCII value + 48 0 To 9 -----------------à48 To 57 + 55 A To F -----------------à 65 To 70 + 48 +7 So +48 is common but if the hex digit is between A to F then +7 is additional. |
801C | FE, 0A | CPI 0AH | ||
801E | DA, 23, 80 | JC CODE | ||
8021 | C6, 07 | ADI 07H | ||
8023 | C6, 30 | CODE | ADI 30H | |
8025 | C9 | RET | Returning control to the calling program |
Output
Address | Data |
---|---|
. . . | . . . |
8060 | 33 |
8061 | 41 |
. . . | . . . |
- Related Articles
- Program to convert two-digit hex to two ASCII values in 8085 Microprocessor
- 8085 Program to convert ASCII to HEX
- 8085 Program to convert HEX to ASCII
- Program to convert ASCII to HEX in 8085 Microprocessor
- Program to convert HEX to ASCII in 8085 Microprocessor
- 8085 Program to convert a two-digit BCD to binary
- 8085 Program to convert BCD to HEX
- 8085 Program to convert HEX to BCD
- 8085 Program to convert ASCII to binary
- Program to convert BCD to HEX in 8085 Microprocessor
- Program to convert HEX to BCD in 8085 Microprocessor
- 8085 Program to multiply two 2-digit BCD numbers
- Program to convert ASCII to binary in 8085 Microprocessor
- Conversion of four-digit hex to ASCII in 8051
- Program to multiply two 2-digit BCD numbers in 8085 Microprocessor
