mips 中的循环不起作用?可能是什么问题?

For loop in mips not working ? what could be problem?

我的 Mips 循环代码不工作。当我尝试 运行 这段代码时,这显示我是空白的。可能是什么问题。

.data
.text
.globl main
main:

li $t0,0

for:
ble $t0,5,end //for (int i=0;i<=5;i++)

li $v0,1
move $a0,$t0
syscall

add $t0,$t0,1
j for

end:

li $v0,10
syscall

手动编译 C/pseudo 代码时,尤其是 if 语句和 for 循环的条件,请记住您通常希望在条件不成立时“跳过”代码。在你的例子中你有

//for (int i=0;i<=5;i++)
//{
//    ... some code
//}

所以你想在不满足条件的时候跳过for body。当 i 小于或等于 5 时,你必须分支,而不是当 i 大于 5 时分支。

然后你会用这个编译它:

for:
 bgt $t0,5,end //for (int i=0;i<=5;i++)  so you use bgt instead of ble
  ...
 j for
end: