如何在 MIPS 架构中不使用 J-Type 指令保存程序计数器地址
Posted
技术标签:
【中文标题】如何在 MIPS 架构中不使用 J-Type 指令保存程序计数器地址【英文标题】:How to save program counter address without using J-Type instructions in MIPS architecture 【发布时间】:2016-03-18 18:47:16 【问题描述】:我必须在不使用 J-Type 指令的情况下将 jal 指令实现为伪指令。我可以用 jr 来实现它,但我知道 jal 将当前的 PC+8 存储在 $ra 中。我该如何实施?没有J-type如何在ra中存储PC地址?
【问题讨论】:
鉴于没有指令可以直接访问 PC 寄存器的当前值,我想知道这是否可能。 【参考方案1】:试试这个:
la $ra, ret # load return address (pseudo instruction!)
j dest # call the function
nop # delay slot
ret: # return here
...
dest: # destination function
...
jr $ra
【讨论】:
感谢您的回答,但在这里您使用的是 J-Type,我被要求在没有任何 J-Type 指令的情况下这样做。 @Vlad 所以将j
替换为la
,后跟jr
。以上是关于如何在 MIPS 架构中不使用 J-Type 指令保存程序计数器地址的主要内容,如果未能解决你的问题,请参考以下文章