#PURPOSE: Finds the maximum number of a set of data items
#VARIABLES: The registers have the following uses: # # %edi = holds the index of the data item being examined # %ebx = Largest data item found # %eax = current data item # # The following memory sections are used: # # data_items = contains the item data, A 0 is used to terminate the data # list # #
movl $0, %edi #moves 0 into the index register movl data_items(,%edi, 4), %eax #load the first byte of data movl %eax, %ebx #since this is the first item %eax is the biggest
start_loop:
cmpl $0, %eax #check to see if we have hit the end je loop_exit incl %edi #load the next value movl data_items(,%edi, 4), %eax cmpl %ebx, %eax #compare values jle start_loop #jump to start loop if the new one isent bigger movl %eax, %ebx
#move the value as the largest jmp start_loop #jump to loop beginning
loop_exit:
#%ebx is the status code for the exit system call and it allready has the #maximum number