4

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

在此处输入图像描述

问候

4

2 回答 2

13

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

于 2012-12-07T10:23:25.250 回答
3

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

于 2018-05-05T15:19:00.567 回答