首页 > 解决方案 > 如何从另一个 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 中保存到堆栈中吗?如果是,我该怎么做?

标签: assemblystackmipscpu-registers

解决方案


推荐阅读