如何在MIPS架构中不使用J型指令保存程序计数器地址

3

我必须实现jal指令作为伪指令,而不使用J类型指令。我可以使用jr来实现它,但我知道jal会将当前PC+8存储在$ra中。我该如何实现这个功能?如何在不使用J类型指令的情况下将PC地址存储在ra寄存器中?


鉴于没有直接访问PC寄存器当前值的指令,我想知道这是否有可能。 - 5gon12eder
1个回答

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型指令(j dest),而我被要求不使用任何J型指令。 - Vlad
1
@Vlad,所以请用“la”替换“j”,然后加上“jr”。 - Konrad Lindenbach

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接