如何从MIPS中的主函数返回值?

感性的

假设我想在MIPS中编写以下C程序:

int main () {
  return 5;
}

当我在MARS中尝试以下MIPS代码时

main:   ADDI $v0, $zero, 5     # $v0 = 5
        JR $ra                 # return from main()

我收到“无效的程序计数器”错误。这显然是因为您不能跳出MARS的主要功能所以我尝试像这样重写它:

main:   ADDI $v0, $zero, 5     # $v0 = 5
        li $v0, 10             # load 10(exit) for syscall
        syscall                # exit

执行完此操作后,$ v0寄存器包含值10,而不是5。这是可以理解的,因为我必须重写$ v0寄存器才能使syscall正常工作。那么,我的问题是,应在哪里保存值5以便将其正确返回给此应用程序的调用者?

麦可

使用syscall 17

exit2 (terminate with value)
----------------------------
$v0 = 17
$a0 = termination result

注意:“如果MIPS程序在MARS图形界面(GUI)的控制下运行,则$ a0中的退出代码将被忽略。”

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么Rust在主函数中没有返回值,以及无论如何如何返回值?

来自分类Dev

Mips函数参数和返回值

来自分类Dev

如何从gwidgets中的函数返回值

来自分类Dev

如何从函数中的exec返回值?

来自分类Dev

如何从gwidgets中的函数返回值

来自分类Dev

如何从Java中的函数返回值?

来自分类Dev

如何从函数返回值

来自分类Dev

如何使主方法计算返回值?

来自分类Dev

如何从返回值的函数中不返回任何内容?

来自分类Dev

如何在从主函数返回值之前等待委托函数完成

来自分类Dev

如何覆盖JavaScript构造函数中的返回值?

来自分类Dev

如何从QThread和Queue运行的函数中返回值

来自分类Dev

如何从js中的匿名函数返回值

来自分类Dev

斯威夫特:如何在异步urlsession函数中返回值?

来自分类Dev

如何在Vim中捕获函数的返回值?

来自分类Dev

如何在JS中调用返回值的swift函数?

来自分类Dev

如何从python中的递归函数返回值?

来自分类Dev

如何从子过程中的函数返回值?

来自分类Dev

如何仅获取c中函数的返回值?

来自分类Dev

如何使用模板中返回值的函数?Vuex,Vue

来自分类Dev

如何使用python中的函数返回值填充列表?

来自分类Dev

如何在嵌套函数中返回值?

来自分类Dev

如何在AsyncTask中调用返回值函数

来自分类Dev

如何从Node中的父函数返回值?

来自分类Dev

我如何从python中的函数打印并返回值?

来自分类Dev

如何在jQuery中打印函数的返回值

来自分类Dev

如何将函数的返回值放在QLineEdit中?

来自分类Dev

如何从工厂传递的函数中返回值?

来自分类Dev

如何从 CreateThread() 中加载的函数中获取返回值?

Related 相关文章

热门标签

归档