COSC2325 In-clаss Finаl Prоject Objectives: Tо use аrrays, lоops, accumulators, arithmetic with integers, conditional statements, procedures and the IRVINE library. **Note: whatever you turn in MUST ASSEMBLE. It cannot contain errors. A grade of zero is given if what is turned in does not assemble. Tasks: Create a double word array and initialize it with test grades. (10 points) Using a loop, output the values in the array, the sum, and the average of the grades. (Loop-10 points, sum-10 points, average-10 points) Create a procedure named FindLargest that receives two parameters: a pointer to the double word grades array, and a count of the array’s length. The procedure must return the value of the largest array member in EAX and print the largest value in the main procedure. · Use the PROC directive with a parameter list when declaring the procedure (parameters: a pointer to a doubleword array, and a count of the array’s length). (15 points) · Preserve all registers (except EAX) that are modified by the procedure. (5 points) · The procedure must return the value of the largest array member in EAX and display the largest value in the main procedure. (10 points) · Create a PROTO declaration for FindLargest. (5 points) · Comment all of your code: (5 points) · Write a test program that calls FindLargest three times and passes three different arrays of different lengths. Be sure to test negative values in your arrays. (10 points) Example Run: Output formatted like example below: (10 points) Array1: 10 20 30 2 3 1 30 Largest array member: 30 Sum: 96 Average: 13 Array2: 10 20 -30 Largest array member: 20 Sum: 0 Average: 0 Array3: 20 -20 30 2 100 Largest array member: 100 Sum: 132 Average: 26 Final Step: TURN IN Copy the program and paste here. You will copy the screenshot in the next question