移动符号在MIPS中扩展不变

时间:2012-12-07 10:19:52

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

为什么我们在MIPS的分支指令中将符号扩展为16位常数2?我对这个想法很困惑。这种变化对符号扩展16位常数带来了什么好处。这是图片:

enter image description here

此致

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:0)

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