Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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]