我正在编写一些自修改代码,我想从 MIPS 调用 C 函数(将其称为 foo
)。
我已将 foo
、&foo
的 mem add 加载到 $t1
中。现在我jr/jalr $t1
。
C 会将 $ra
设置为我当前的 PC(+8)(跳转前),允许我使用 JR
还是我必须 JALR
相反(即,照顾它,因为 C 不会)?
我现在无法测试这个,因为我正在调试我的宏(用于 MIPS 助记符)。我肯定搞砸了一些事情,因为我不断收到非法指令错误。
最佳答案
您必须使用JALR
。 C 函数怎么可能知道如何为您设置 $ra
?
关于c - 当从 MIPS 调用 C 时,我们使用 JR 还是 JALR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14793778/