- 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 find maximum and minimum of 10 numbers
In this program we will see how to find the maximum and minimum number in a block data.
Problem Statement
Write 8085 Assembly language program to find the maximum and minimum number in a block often 8-bit numbers.
Discussion
In this program we are taking the first number of the block into register D and E. The D will store the minimum number, and E will store maximum number. In each iteration we will check whether the number is smaller than D or not, if it is smaller, then update D with the new number, and then compare it again with E to check whether the number is larger than E or not. If larger, then update E with the new number.
Input
Address | Data |
---|---|
. . . | . . . |
8000 | 55 |
8001 | 22 |
8002 | 88 |
8003 | 77 |
8004 | 11 |
8005 | 99 |
8006 | 44 |
8007 | AA |
8008 | 33 |
8009 | 66 |
. . . | . . . |
Flow Diagram
Program
Address | HEX Codes | Label | Mnemonics | Comments |
---|---|---|---|---|
F000 | 21, 00, 80 | LXI H,8000H | Load the initial address | |
F003 | 0E, 0A | MVI C,0AH | Load the count of numbers | |
F005 | 56 | MOV D,M | Load the first number from memory | |
F006 | 5A | MOV E,D | Also load the first number to E | |
F007 | 23 | INX H | Point to next location | |
F008 | 0D | DCR C | Decrease the count | |
F009 | 7E | LOOP | MOV A,M | Load the number from memory to A |
F00A | BA | CMP D | Compare D with A | |
F00B | D2, 0F, F0 | JNC SKIP | If CY = 0, A is not smaller | |
F00E | 57 | MOV D,A | Update D with A | |
F00F | BB | SKIP | CMP E | Compare E with A |
F010 | DA, 14, F0 | JC DO | if CY = 1, A is not larger | |
F013 | 5F | MOV E,A | Update E with A | |
F014 | 23 | DO | INX H | Point to next location |
F015 | 0D | DCR C | Decrease C by1 | |
F016 | C2, 09, F0 | JNZ LOOP | Go to loop | |
F019 | 21, 50, 80 | LXI H,8050H | Point to destination address | |
F01C | 72 | MOV M,D | Store the smallest number | |
F01D | 23 | INX H | Point to next location | |
F01E | 73 | MOV M,E | Store the largest number | |
F01F | 76 | HLT | Terminate the program |
Output
Address | Data |
---|---|
. . . | . . . |
8050 | 11 |
8051 | AA |
. . . | . . . |
Advertisements