Problem – Write a assembly language program to find maximum of two 8 bit numbers in 8085 microprocessor.
Assumptions – Starting memory locations and output memory locations are 2050, 2051 and 3050 respectively.
Example –

Algorithm –
- Load value in the accumulator
- Then, copy the value to any of the register
- Load next value in the accumulator
- Compare both values
- Check carry flag, if reset then jump to the required address to store the value
- Copy the result in the accumulator
- Store the result at the required address
Program –
MEMORY ADDRESS |
MNEMONICS |
COMMENTS |
2000 |
LDA 2050 |
A<-25 |
2003 |
MOV B, A |
B<-25 |
2004 |
LDA 2051 |
A<-15 |
2007 |
CMP B |
A-B |
2008 |
JNC 200C |
Jump if Carry flag is Reset(Carry flag = 0) |
200B |
MOV A, B |
A<-25 |
200C |
STA 3050 |
3050<-25 |
200F |
HLT |
Terminates the program |
Explanation –
- LDA 2050: loads value at memory location 2050
- MOV B, A: assigns value of A to B
- LDA 2051: loads value at memory location 2051
- CMP B: compare values by subtracting B from A
- JNC 200C: jump at memory location 200C if carry flag is Reset(Carry flag = 0)
- STA 3050: store result at memory location 3050
- HLT: terminates the program
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!