Implement a subprogram which takes 4 numbers in the argument registers $a0...$a3, and returns the largest value and the average in $v0 and $v1 to the calling program. The program must be structured as follows: Subprogram largestAndAverage($a1, $a2, $a3, $a4) { int var0 = $a0, var1 = $a1, var2 = $a2, var3 = $a3; $s0 = getLarger($a1, $a2); $s0 = getLarger($s0, $a3); $v0 = getLarager(s0, $a4); // Largest is in $v0 $v1 = (var0 + var1 + var2 + var3)/ 4; // Aversge is in $v1 return; } Subprogram getLarger($a0, $a1) { $v0 = $a0 if ($a1 > $a0) $v0 = $a1 return; } Take note of how var0...var3 are used. The values of $a0 and $a1 (at least) must be placed on the stack because they are not immediately available when needed to calculate the average because they are modified during the call to getLarger. You must use the getLarger subprogram displayed above to calculate the greatest value for this problem, and it must be called before the average calculation. This indicates that at the very least $a0 and $a1 must be kept on the stack, though I'd advise keeping all four stack variables as they are displayed here. By performing the average calculation first, for instance, it is possible to develop a solution that does not include the stack variables.
Implement a subprogram which takes 4 numbers in the argument registers $a0...$a3, and
returns the largest value and the average in $v0 and $v1 to the calling program. The
program must be structured as follows:
Subprogram largestAndAverage($a1, $a2, $a3, $a4)
{
int var0 = $a0, var1 = $a1, var2 = $a2, var3 = $a3;
$s0 = getLarger($a1, $a2);
$s0 = getLarger($s0, $a3);
$v0 = getLarager(s0, $a4); // Largest is in $v0
$v1 = (var0 + var1 + var2 + var3)/ 4; // Aversge is in $v1
return;
}
Subprogram getLarger($a0, $a1) {
$v0 = $a0
if ($a1 > $a0)
$v0 = $a1
return;
}
Take note of how var0...var3 are used. The values of $a0 and $a1 (at least) must be placed on the stack because they are not immediately available when needed to calculate the average because they are modified during the call to getLarger. You must use the getLarger subprogram displayed above to calculate the greatest value for this problem, and it must be called before the average calculation. This indicates that at the very least $a0 and $a1 must be kept on the stack, though I'd advise keeping all four stack variables as they are displayed here.
By performing the average calculation first, for instance, it is possible to develop a solution that does not include the stack variables.
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images