【问题标题】:Shifting the Sign extended constant in MIPS在 MIPS 中移动符号扩展常量
【发布时间】:2012-11-25 12:19:22
【问题描述】:

为什么我们在 MIPS 的分支指令中将符号扩展的 16 位常数移动 2?我对这个想法感到困惑。这种移位对符号扩展的 16 位常数有什么好处。这是图片:

问候

【问题讨论】:

    标签: constants mips bit-shift 16-bit sign-extension


    【解决方案1】:

    MIPS 指令是 32 位 = 4 字节,因此分支偏移指定为 4 的倍数,即分支偏移 1 = 4 字节。与以字节为单位指定偏移量相比,这可以实现更大范围的分支偏移量(因为会有两个冗余位)。当然,左移 2 与乘以 4 相同。

    【讨论】:

    • 抱歉,1=4 字节的分支偏移(或 16 位常量(2 字节))是什么意思?
    • 分支指令是一个相对分支 - 它需要知道它需要跳转多少条相对于当前PC的指令。这称为分支偏移。要计算新的 PC 地址,请将这个 16 位偏移量乘以 4,然后将其添加到当前 PC,然后它就成为新的 PC。
    【解决方案2】:

    每个向左移动两次的二进制数都是 4 的倍数。因此,通过将立即数向左移动两次并将其添加到下一条指令地址,将获得下一条指令地址。

    【讨论】:

      猜你喜欢
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 2013-10-16
      相关资源
      最近更新 更多