Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为什么我们在 MIPS 的分支指令中将符号扩展的 16 位常量移动 2?我对这个想法感到困惑。这种移位对符号扩展的 16 位常数有什么好处。这是图片:
问候
MIPS 指令是 32 位 = 4 字节,因此分支偏移指定为 4 的倍数,即分支偏移 1 = 4 字节。与以字节为单位指定偏移量相比,这可以实现更大范围的分支偏移量(因为会有两个冗余位)。当然,左移 2 与乘以 4 相同。
每个向左移动两次的二进制数都是 4 的倍数。因此,通过将立即数向左移动两次并将其添加到下一个指令地址,将获得下一个指令地址。