MIPS分支指令跳转超出范围

MIPS分支指令跳转超出范围,mips,Mips,我知道在用于PC寻址的MIPs中有一个最大跳转范围。但是,如果我想跳转到的地址超出范围怎么办 i、 e.贝币$s0、$s1、L1 其中L1与PC的距离超过bne和beq的支持范围。有什么方法可以构造一个等价的代码序列吗?因此,如果I-Type命令的16位对于L1来说不够,您可以使用J-Type,因为它有26位用于您的地址,只需围绕它构建if 如果这仍然不够,您应该使用la$t0,L1将您的地址保存到寄存器中 然后使用jr$t0跳转到该寄存器 如果您先将其保存到一个寄存器中,您就拥有完整的32位地

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

i、 e.贝币$s0、$s1、L1


其中L1与PC的距离超过bne和beq的支持范围。有什么方法可以构造一个等价的代码序列吗?

因此,如果I-Type命令的16位对于L1来说不够,您可以使用J-Type,因为它有26位用于您的地址,只需围绕它构建if

如果这仍然不够,您应该使用la$t0,L1将您的地址保存到寄存器中 然后使用jr$t0跳转到该寄存器
如果您先将其保存到一个寄存器中,您就拥有完整的32位地址。

可能存在@RaymondChen的重复项。这不是我要问的问题。我不想“分支到32位地址”。现在我的直接任务是使用PC寻址,我想问,与我正在使用的代码序列相比,是否有一种方法可以跳转到PC寻址方式之外,即直接跳转到范围之外。对不起。如果你想要使用的指令不能达到你想要的目标,你必须切换到某种类型的跳转指令,因此我提供了包含建议的副本。