MIPS中的JUMP指令

时间:2016-03-08 13:02:40

标签: mips32

我们仅将JUMP指令中的目标地址表示为26位,因此该地址取决于当前的PC + 4值。 考虑我想要跳转到的指令位于

的代码中的情况

0010& [my_target = 26 bits]& 00

但我们会跳转到以0011开头的错误地址(到0011& [my_target = 26 bits] $ 00),因为PC已经增加到更改其第4位的值。

这种情况真的可能吗?

如果是,怎么解决?

Thanx

1 个答案:

答案 0 :(得分:1)

  

这种情况真的可能吗?

是的,确实如此。引用 MIPS32™架构的程序员 第二卷:MIPS32™指令集

  

当跳转指令在256 MB的最后一个字中时   区域,它只能分支到包含分支延迟槽的以下256 MB区域。


  

如果是,怎么解决?

将要跳转的地址加载到寄存器中,然后使用jr指令。