115k views
3 votes
Create a procedure named FindLargest that receives two parameters: a pointer to a signed doubleword array, and a count of the array's length. The procedure must return the value of the largest array member in EAX. Use the PROC directive with a parameter list when declaring the procedure. Preserve all registers (except EAX) that are modified by the procedure. Write a test program that calls FindLargest and passes three different arrays of different lengths. Be sure to include negative values in your arrays. Create a PROTO declaration for FindLargest.

User Lbarqueira
by
3.9k points

1 Answer

3 votes

Answer:

See explaination

Step-by-step explanation:

FindLargest PROC,

array_num: PTR DWORD,

arraySize: DWORD

mov esi, array_num

mov ecx, arraySize

mov eax, [esi]

dec ecx

scan_array:

add esi, 4

mov ebx, [esi]

cmp ebx, eax

JLE check_number

mov eax, ebx

check_number:

loop scan_array

ret

FindLargest ENDP

END

User Tomsk
by
4.0k points