Find Largest Number in an Array Using 8085 Assembly Language



In this program we will see how to find the largest number from a block of bytes using 8085.

Problem Statement

Write 8085 Assembly language program to find the largest number from a block of bytes.

Discussion

In this program the data are stored at location 8001H onwards. The 8000H is containing the size of the block. After executing this program, it will return the largest number and store it at location 9000H.

Logic is simple, we are taking the first number at register B to start the job. In each iteration we are getting the number from memory and storing it into register A. Then if B < A, then we simply update the value of B with A, otherwise go for the next iteration. Thus we can find the smallest number in a block of bytes.

Input

Address Data
... ...
8000 06
8001 55
8002 22
8003 44
8004 11
8005 33
8006 66
... ...


Flow Diagram

Program

Address HEX Codes Labels Mnemonics Comments
F000 21, 00, 80
LXI H,8000H Point to get array size
F003 4E
MOV C,M Get the size of array
F004 23
INX H    Point to actual array
F005 46
MOV B,M Load the first number into B
F006 0D
DCR C    Decrease C
F007 23 LOOP INX H    Point to next location
F008 7E
MOV A,M Get the next number from memory to Acc
F009 B8
CMP B    Compare Acc and B
F00A DA, 0E, F0
JC SKIP if B > A,then skip
F00D 47
MOV B,A If CY is 0,update B
F00E 0D SKIP DCR C    Decrease C
F00F C2, 07, F0
JNZ LOOP     When count is not 0, go to LOOP
F012 21, 00, 90
LXI H,9000H Point to destination address
F015 70
MOV M,B Store the minimum number
F016 76
HLT Terminate the program


Output

Address Data
... ...
9000 66
... ...
Updated on: 2019-07-30T22:30:24+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements