Open In App

Assembly language program to find largest number in an array

Improve
Improve
Like Article
Like
Save
Share
Report

Problem – Determine largest number in an array of n elements. Value of n is stored at address 2050 and array starts from address 2051. Result is stored at address 3050. Starting address of program is taken as 2000. 

Example: 

Algorithm:

  1. We are taking first element of array in A
  2. Comparing A with other elements of array, if A is smaller then store that element in A otherwise compare with next element
  3. The value of A is the answer

Program:

Memory Address Mnemonics Comment
2000 LXI H 2050 H←20, L←50
2003 MOV C, M C←M
2004 DCR C C←C-01
2005 INX H HL←HL+0001
2006 MOV A, M A←M
2007 INX H HL←HL+0001
2008 CMP M A-M
2009 JNC 200D If Carry Flag=0, goto 200D
200C MOV A, M A←M
200D DCR C C←C-1
200E JNZ 2007 If Zero Flag=0, goto 2007
2011 STA 3050 A→3050
2014 HLT  

Explanation:

 Registers used: A, H, L, C

  1. LXI 2050 assigns 20 to H and 50 to L
  2. MOV C, M copies content of memory (specified by HL register pair) to C (this is used as a counter)
  3. DCR C decrements value of C by 1
  4. INX H increases value of HL by 1. This is done to visit next memory location
  5. MOV A, M copies content of memory (specified by HL register pair) to A
  6. INX H increases value of HL by 1. This is done to visit next memory location
  7. CMP M compares A and M by subtracting M from A. Carry flag and sign flag becomes set if A-M is negative
  8. JNC 200D jumps program counter to 200D if carry flag = 0
  9. MOV A, M copies content of memory (specified by HL register pair) to A
  10. DCR C decrements value of C by 1
  11. JNZ 2007 jumps program counter to 2007 if zero flag = 0
  12. STA 3050 stores value of A at 3050 memory location
  13. HLT stops executing the program and halts any further execution

Advantages of finding the largest number in an array:

  1. It is a simple and straightforward task that can be easily implemented in any programming language.
     
  2. It is a common operation used in many algorithms and applications, such as finding the maximum value in a data set or determining the winner of a game.
     
  3. It is a fast operation that can be completed in O(n) time complexity, where n is the number of elements in the array.
     

Disadvantages of finding the largest number in an array:

  1. If the array is unsorted, finding the largest number requires iterating through the entire array, which can be inefficient for very large arrays.
     
  2. If multiple elements in the array have the same maximum value, finding only one of them requires additional logic or iterations, which can add complexity to the algorithm.
     
  3. If the array is very large and memory is limited, storing the entire array in memory may not be feasible, which could require a more complex solution such as sorting the array in smaller parts.

Last Updated : 07 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads