Open In App

8085 program to find maximum and minimum of 10 numbers

Last Updated : 25 Apr, 2023
Like Article

Problem – Write an assembly language program in 8085 microprocessor to find maximum and minimum of 10 numbers. 

Example – 

Minimum: 01H,  Maximum: FFH

In CMP instruction: 
If Accumulator > Register then carry and zero flags are reset 
If Accumulator = Register then zero flag is set 
If Accumulator < Register then carry flag is set 

Assumption – List of numbers from 2050H to 2059H and output at 2060H and 2061H. 

Algorithm –  

  1. Maximum number is stored in B register and minimum in C register
  2. Load counter in D register
  3. Load starting element in Accumulator, B and C register
  4. Compare Accumulator and B register
  5. If carry flag is not set then transfer contents of Accumulator to B. Else, compare Accumulator with C register, if carry flag is set transfer contents of Accumulator to C
  6. Decrement D register
  7. If D>0 take next element in Accumulator and go to point 4
  8. If D=0, store B and C register in memory
  9. End of program


Address Label Instruction Comment
2000H   LXI H, 2050H Load starting address of list
2003H   MOV B, M Store maximum
2004H   MOV C, M Store minimum
2005H   MVI D, 0AH Counter for 10 elements
2007H LOOP MOV A, M Retrieve list element in Accumulator
2008H   CMP B Compare element with maximum number
2009H   JC MIN Jump to MIN if not maximum
200CH   MOV B, A Transfer contents of A to B as A > B
200DH MIN CMP C Compare element with minimum number
200EH   JNC SKIP Jump to SKIP if not minimum
2011H   MOV C, A Transfer contents of A to C if A < minimum
2012H SKIP INX H Increment memory
2013H   DCR D Decrement counter
2014H   JNZ LOOP Jump to LOOP if D > 0
2017H   LXI H, 2060H Load address to store maximum
201AH   MOV M, B Move maximum to 2060H
201BH   INX H Increment memory
201CH   MOV M, C Move minimum to 2061H
201DH   HLT Halt

Explanation – 

  1. One by one all elements are compared with B and C register.
  2. Element is compared with maximum, if it greater than maximum then it is stored in B register. Else, it is compared with minimum and if it is less than minimum then it stored in C register.
  3. Loop executes 10 number of times.
  4. At the end of 10 iterations, maximum and minimum are stored at 2060H and 2061H respectively.


Efficient processing: The 8085 processor is capable of performing complex calculations quickly and efficiently, which can make it well-suited for programs that involve mathematical operations.
Flexibility: The 8085 instruction set is highly versatile, which can allow programmers to develop programs that are tailored to specific needs or applications.
Low cost: The 8085 microprocessor is a low-cost option compared to other microprocessors, which can make it accessible for a wide range of applications.


Limited memory: The 8085 microprocessor has a limited amount of memory, which can make it difficult to work with larger data sets or perform complex operations.
Limited processing power: While the 8085 is capable of performing complex calculations, it has limited processing power compared to newer microprocessors. This can make it less suitable for certain applications that require more advanced processing capabilities.
Difficulty of programming: The 8085 instruction set can be difficult to work with for programmers who are not familiar with assembly language. This can make it more challenging to develop programs for the 8085 compared to other microprocessors with higher-level programming languages. Additionally, finding the maximum and minimum of 10 numbers requires a significant amount of programming effort, particularly if the program needs to handle multiple input values or complex data structures.

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads