Skip to content
Related Articles

Related Articles

8085 program to find maximum and minimum of 10 numbers

View Discussion
Improve Article
Save Article
Like Article
  • Difficulty Level : Hard
  • Last Updated : 01 Sep, 2021

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.
My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!