assembly - 如何从另一个 MIPS 程序中保存来自一个 MIPS 程序的寄存器?
问题描述
我正在同时运行两个 MIPS 程序,其中一个分支到另一个程序并运行它。我希望最初运行的程序可以从它分支到的程序中保存寄存器。
例子:
测试.s
.text
main:
addi $t0, $t0, 1
addi $t1, $t1, 2
addi $s0, $s0, 3
addi $s1, $s1, 4
jr $ra
跳转.s
.text
.globl saveRegs
saveRegs:
jal main # jumps to test.s main
????
li $v0, 10
syscall
仅使用可以在 jump.s 中编写的代码来保存寄存器 $t0、$t1、$s0、$s1 以及可能的任何其他寄存器的方法是什么?这些寄存器会在 jump.s 中保存到堆栈中吗?如果是,我该怎么做?
解决方案
推荐阅读
- c# - 比较跨不同系统保存的 DateTime 是一个坏主意吗?
- jquery - 使用网站名称进行表单验证时出错
- tensorflow - 在仅具有 CPU 的 PC 上使用 NCHW 训练的 GAN?
- c# - 如何尽可能快地处理 Parallel.ForEach 结果?
- javascript - 在 Lightgallery 中查看上传的 PDF
- vue.js - 每周vuejs日历不显示事件
- python - 我怎样才能使我的单矩阵检查的文档相似性更快?
- android - 重命名 Base.apk
- xamarin - 使用 xamarin 表单在列表视图上添加左右全滑动手势
- excel - 尝试从 Excel 电子表格中的数据生成电子邮件,出现编译错误“未定义用户定义类型”