2.4.3 [5] <2.2, 2.3> For the C statements above, how many different registers are
needed to carry out the C statement?
The following problems deal with translating from MIPS to C. Assume that the
variables f, g, h, i, and j are assigned to registers $s0, $s1, $s2, $s3, and $s4,
respectively. Assume that the base address of the arrays A and B are in registers $s6
and $s7, respectively.
a. sll $s2, $s4, 1
add $s0, $s2, $s3
add $s0, $s0, $s1
b. sll $t0, $s0, 2 # $t0 = f * 4
add $t0, $s6, $t0 # $t0 = &A[f]
sll $t1, $s1, 2 # $t1 = g * 4
add $t1, $s7, $t1 # $t1 = &B[g]
lw $s0, 0($t0) # f = A[f]
addi $t2, $t0, 4
lw $t0, 0($t2)
add $t0, $t0, $s0
sw $t0, 0($t1)
 
 
View Solution
 
 
 
<< Back Next >>