MIPS分支指令

时间:2016-05-02 06:30:09

标签: branch mips

我正在学习MIPS,当我阅读文档时,它说:

  

18位有符号偏移(16位偏移字段向左移位2位)

我想知道为什么分支指令的偏移量乘以4?文档还指出,这使分支指令的范围为128 kb,因为32kb乘以4.此乘法是仅适用于分支指令还是也适用于跳转指令?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

我想知道为什么分支指令的偏移量乘以4?

所有说明必须是字对齐的。由此得出,原点和目的地都是字对齐的,这反过来意味着偏移也总是字对齐的。因此,存储偏移的两个最低有效位将是一种浪费,因为它们总是为0.相反,我们可以通过仅存储16个最高有效位来使用指令字中的可用位来编码18位偏移。 / p>

  

此乘法是仅适用于分支指令还是也适用于跳转指令?

跳转指令也是如此。虽然跳转指令在其他方面有所不同;跳转的偏移量不是PC相对的,而是相对于PC当前所在的256MB对齐区域的起点。