0% found this document useful (0 votes)
966 views4 pages

Largest Number

The algorithm finds the largest number in an array by: 1) Loading the array size into register C and initializing the maximum value to 0. 2) Comparing each array element to the maximum, updating maximum if greater. 3) Incrementing the pointer and decrementing the counter until all elements are checked. 4) Storing the maximum value in memory location 2300H and halting the program.

Uploaded by

Satish
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
966 views4 pages

Largest Number

The algorithm finds the largest number in an array by: 1) Loading the array size into register C and initializing the maximum value to 0. 2) Comparing each array element to the maximum, updating maximum if greater. 3) Incrementing the pointer and decrementing the counter until all elements are checked. 4) Storing the maximum value in memory location 2300H and halting the program.

Uploaded by

Satish
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

An Assembly Language Program to find the largest number in an array of data

using 8085?
Algorithm
1) Load the address of the first element of the array in HL pair.
2) Copy the count to register B.
3) Increment the pointer.
4) Get the first data in accumulator.
5) Decrement the count.
6) Increment the pointer.
7) Compare the content of memory addressed by HL pair with that of Accumulator.
8) If Carry = 0, go to step 10 or if Carry = 1 go to step 9.
9) Copy the content of the memory addressed by HL to Accumulator.
10) Decrement the count.
11) Check for Zero of the count. If Zero Flag (ZF) = 0, go to step 6, or if ZF = 1 go to next
step.
12) Store the largest data in memory.
13) Terminate the program.
Program
MEMORY

LABEL

4400
4401
4402
4403
4404
4405

LXI H,4200

MOV B,M
INX H
MOV A,M

HEX
CODE
21
00
42
46
23
7E

4406
4407
4408

DCR B
INX H
CMP M

05
23
BE

JNC AHEAD

MOV A,M

D2
0D
44
7E

DCR B

05

LOOP

4409
440A
440B
440C
440D

AHEAD

MNEMONIC

COMMENT
Load the array size to the HL pair

Copy the array size to B register


Increment the memory
Copy the first data to the
Accumulator
Decrement the Array size by 1
Increment the memory
Compare accumulator content
and memory
Jump on no carry to label
AHEAD
Copy the memory content to the
accumulator
Decrement register B by 1

440E
440F
4410
4411
4412
4413
4414

JNZ LOOP

STA 4300

HLT

C2
07
44
32
00
43
76

Jump on non-zero to label LOOP

Store accumulator content to


4300
Program ends

Observation
Input at

Output at

4200 :
4201 :
4202 :
4203 :
4204 :
4205 :
4300 :

05H --------------- Array Size


0AH
F1H
1FH
26H
FEH
FEH

Statement:Find the largest number in a block of data. The length of the block is in
memory location 2200H and the block itself starts from memory location 2201H.
Store the maximum number in memory location 2300H. Assume that the numbers in the
block are all 8 bit unsigned binary numbers.

Home

8085 Forum

8085 Free Projects

8085 Free Programs

8085 Tutorials

8085 details

Interfacing Techniques

Electronic Tutorials

Electronic Projects

Assembler/ IDE

Datasheets

Guest Book

About Me
Sample problem
(2200H) = 04
(2201H) = 34H
(2202H) = A9H
(2203H) = 78H
(2204H) =56H
Result = (2202H) = A9H
Source program
LDA 2200H
MOV C, A
XRA A
LXI H, 2201H
BACK: CMP M
JNC SKIP
MOV A, M
SKIP: INX H
DCR C
JNZ BACK
STA 2300H
HLT

: Initialize counter
: Maximum = Minimum possible value = 0
: Initialize pointer
: Is number> maximum
: Yes, replace maximum

: Store maximum number


: Terminate program execution

You might also like