所以我的教授把这个问题放在他的幻灯片中,这就是他的答案,不明白他如何将其转换为 MIPS,所以如果有人可以帮助解释这一点,那就太好了。变量i在$s3中,k在$s5中,save[]的基地址在$s6中
他给了我们这个 C 代码:
while( save[i] == k ) {
i += 1;
}
Run Code Online (Sandbox Code Playgroud)
并给了我们这个 MIPS 代码作为回应:
Loop: sll $t1, $s3, 2
add $t1, $t1, $s6
lw $t0, 0($t1)
bne $t0, $s5, Exit
addi $s3, $s3, 1
j Loop
Exit:
Run Code Online (Sandbox Code Playgroud)