【问题标题】:JUMP instruction in MIPSMIPS 中的 JUMP 指令
【发布时间】:2016-03-08 13:02:40
【问题描述】:

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

0010&[my_target = 26 位]&00

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

这种情况真的有可能吗?

如果是,如何解决?

谢谢

【问题讨论】:

    标签: mips32


    【解决方案1】:

    这种情况真的有可能吗?

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

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


    如果是,如何解决?

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-01
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 2014-09-17
      • 2019-04-26
      相关资源
      最近更新 更多