我正在编写一些自修改代码,我想从MIPS调用一个C函数(称之为foo
)。
我已将foo
,&foo
的mem添加到$t1
。现在我jr/jalr $t1
。
C会将$ra
设置为我当前的PC(+8)(跳转前),允许我使用JR
或者我必须JALR
代替{{1}}因为C不会)?
我现在无法测试这个,因为我正在调试我的宏(对于MIPS助记符)。我一定搞砸了,因为我一直收到非法的指令错误。
答案 0 :(得分:1)
您必须使用JALR
。 C函数怎么可能知道如何为你设置$ra
?