Question: ASSIGNMENT DESCRIPTION: Implement a MIPS assembly language program that defines main, and function1 procedures. (PLEASE DO NOT PASTE THE BELOW C CODE INTO A MIPS
ASSIGNMENT DESCRIPTION: Implement a MIPS assembly language program that defines "main", and "function1" procedures. (PLEASE DO NOT PASTE THE BELOW C CODE INTO A MIPS COMPILER. I NEED THE PROGRAM TO WORK FOR SPIM) The function1 is recursive and should be defined as:
function1(n) = 2*n if n <= 4
= n*function1(n-2) + function1(n-3) + n otherwise.
The main asks a user to enter an integer for n and calls the function1 by passing the n value, then prints the result. If your program causes an infinite loop, press Control and 'C' keys at the same time to stop it.
This is how the program looks in C:
// The function1 is a recursive procedure defined by:
// function1(n) = 2*n if n <= 4
// = n*function1(n-2) + function1(n-3) + n otherwise.
int function1(int n)
{
if (n <= 4)
{
return 2*n;
}
else
{
int comp = n*function1(n-2) + function1(n-3) + n;
return comp;
}
}
// The main calls function1 by entering an integer given by a user.
void main()
{
int ans, n;
printf("Enter an integer: ");
// read an integer from user and store it in "n"
scanf("%d", &n);
ans = function1(n);
// print out the solution computed by function 1
printf("The solution is: %d ", ans);
return;
}
SAMPLE OUTPUT:
Enter an integer: 8 The solution is: 527
--------------------------------------------------
Each procedure needs to have a header using the following format:
############################################################################ # Procedure findMax # Description: ----- # parameters: $a0 = address of array, $a1 = length # return value: $v0 = max # registers to be used: $s3 and $s4 will be used. ############################################################################
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
