我正在尝试学习MIPS,并且我遇到了以下示例,该示例演示了如何将C代码转换为MIPS:
我不明白第三条MIPS系列的目的是什么。是不是lw操作数只是将值从t1复制到t0?
答案 0 :(得分:2)
不,它从 $t1
中包含的地址中读取单词。这是代码的注释版本:
Loop:
sll $t1, $s3, 2 # $t1 = i * sizeof(int)
add $t1, $t1, $s6 # $t1 += save (== &save[i])
lw $t0, 0($t1) # $t0 = *(&save[i]) (== save[i])
bne $t0,$s5, Exit # if (save[i] != k) goto Exit
addi $s3, $s3, 1 # i += 1
j Loop # repeat