我正在尝试了解 $ra,所以我想要的输出是 "mainfunction1main" ,通过 main 调用 function1,function1 返回到 main,然后 main 完成。但由于某种原因,我得到一个无限循环,打印“mainfunction1mainfunction1......”我做错了什么?
.data
mainstring: .asciiz "main"
string1: .asciiz "function1"
string2: .asciiz "function2"
string3: .asciiz "function3"
.text
main: la $a0,mainstring
li $v0, 4
syscall
jal function1
la $a0, mainstring
syscall
function1: la $a0, string1
syscall
jr $ra
就像 JasonD 所说,你需要在 main 结束时退出你的程序。您需要做的就是在 main 末尾添加两行,如下所示:
main:
# ... previous stuff
li $v0, 10
syscall
这将加载并运行exit
系统调用(代码为 10。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)