所以我试图将这个 MIPS 汇编代码翻译成 C。我对正在发生的事情的某个部分感到困惑。这是 MIPS 汇编代码:假设我们有变量 f、g、h、i、j 分别存储在 $s0、$s1、$s2、$s3 和 $s4 中。假设数组 A 和 B 的基地址分别为 $s6 和 $s7,它们包含 4 个字节的字。我插入了评论以表明我了解其中的大部分内容。
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 <-- Here's where I am confused. Since $t0 contains the address of A[f], what does adding 4 do to that?
lw $t0, 0($t2)
add $t0, $t0, $s0
sw $t0, 0($t1)