MIPS分支指令跳出了范围

时间:2019-02-28 04:05:49

标签: mips

我了解在用于PC寻址的MIP中有一个最大的跳转范围。但是,如果我想跳转到的地址超出范围怎么办?

beq $s0, $s1, L1

其中L1是远离bnebeq支持的PC的父亲。有什么方法可以构造等效的代码序列?

1 个答案:

答案 0 :(得分:1)

因此,如果I-Type命令的16位不足以支持L1,则可以使用J-Type,因为它的地址有26位(只要在地址周围构建即可)。MIPS I-Type vs J-Type < / p>

如果这还不够,请使用以下地址将地址保存到寄存器中:la $t0, L1 然后使用以下命令跳转到该寄存器:jr $t0 如果您首先将其安全保存到寄存器中,那么您将拥有完整的32位地址。