CDA3101 Programming Assignment I solved


Category: You will receive a download link of the .ZIP file upon Payment


5/5 - (1 vote)

Transform the following code into MIPS instructions. Your programs should run correctly on the QtSPIM
simulator. Submit your assembly solution (project1.s) containing the neatly written/organized MIPS code
in e-Learning (Canvas) website before the deadline.
 You should use comments (‘#’ followed by text) in order to make your programs more
 The name of the file submitted MUST be “project1.s”
 You MUST verify that your submission in Canvas is successful by downloading your submission
from Canvas and successfully testing it again using SPIM simulator. This will ensure that you
uploaded the right file in eLearning and the upload is successful.
Problem Statement
We have an array A which has 12 numbers out of which 6 are positive and other 6, negative. All numbers
are unique integer numbers (no duplicates). The allowed numbers are in the range -100 to 100 (0 is
excluded). Calculate the average of only the positive elements and print the result.
Your assembly implementation should exactly follow the pseudo code sequence given below. Please do
not perform any optimization at pseudo code level or at assembly level.
Inputs: A[12] = {-89, 19, 91, -23, -31, -96, 3, 67, 17, 13, -43, -74}
We will also test your code using other possible values in the A array. The array A will always have 12
unique integer numbersin the range -100 to 100 (0 is excluded) out of which 6 are positive. Sum of positive
numbers will always be divisible by the number of positive numbers. Please test your MIPS assembly with
other possible values in A.
Outputs (with expected values for the above input)
Average of positive array elements: 35
For printing to/reading from console, you should first load correct value to register $v0, and then call
“syscall” method. If there is an input, the value would be returned in $v0.
There is no need to get inputs from the console. Array A can be hard coded in the source file. We will
change it to test your code with different inputs.
int A[12] = {-89, 19, 91, -23, -31, -96, 3, 67, 17, 13, -43, -74};
int sum = 0;
int average = 0;
int i=0;
/*find the average of positive array elements*/
for (i = 0; i < 12; i++) {
if( A[i] > 0 ) {
sum = sum + A[i];
average = sum/6;
printf(“Average of positive array elements: %d\n”, average);