2.4 [5] <§§2.2, 2.3> For the MIPS assembly instructions below, what is the corre
ID: 3903788 • Letter: 2
Question
2.4 [5] <§§2.2, 2.3> For the MIPS assembly instructions below, what is the corresponding C statement? 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.
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 = g*4
lw $s0, 0($t0) #f = A[f]
addi $t2, $t0, 4
lw $t0, 0($t2)
add $t0, $t0, $s0
sw $t0, 0($t1)
Explanation / Answer
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 # $t2 = &A[f+1] lw $t0, 0($t2) # $t0 = A[f+1] add $t0, $t0, $s0 # $t0 = A[f] + A[f+1] sw $t0, 0($t1) # B[g] = A[f] + A[f+1] C code equivalent is: ------------------------ B[g] = A[f] + A[f+1]
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.