【发布时间】:2011-11-03 05:09:30
【问题描述】:
据我所知,程序计数器 $PC 对用户是隐藏的。它不是 32 个寄存器之一。
我想执行以下操作,而不是使用 jal
$ra <= PC + 4
j my_function
# instead of jal my_function
有可能做到这一点吗?我知道 JAIL 是一个宏。
如何在不使用 JAL 的情况下跳转到函数并能够返回到调用者的下一条指令?谢谢。
谢谢!
在代码中“发现”PC 的一种受支持的方法是使用 JAL 偏移量为零(跳转/链接到下一条指令),然后读取 R31的PC。
尝试:
..statements before jump...
jal $0
addi $t3, $ra, 4
..statements when function returns..
我最终陷入无限循环。
【问题讨论】:
标签: mips