移动符号在MIPS中扩展不变

Alf*_*red 4 constants mips bit-shift 16-bit sign-extension

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

在此输入图像描述

问候

Pau*_*l R 8

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

  • 分支指令是*相对分支* - 它需要知道相对于当前PC*需要跳转多少指令*.这称为*分支偏移*.要计算新的PC地址,将此16位偏移乘以4,将其添加到当前PC,然后再成为新PC. (4认同)