2012-03-13 84 views
0

我不明白MIPS中分支地址是如何计算的。计算MIPS上的分支地址

这里是大画面发生了什么程序计数器(PC):​​

我明白为什么偏置号signed-extended被添加到PC前的原因,仅仅是16位值,需要打开转换成32位的值,但为什么我们需要left double shift signed-extended number ??? (另外,<<2意味着我们乘以4号)关于这个问题

虽然我们,我会延长问题: 当我们从立即值(寄存器)偏移,为什么我们不这样做<<2

谢谢!

回答

1

重要的是要知道的是,指令是四字节对齐。所以,不需要存储两个最低有效地址位,并且这允许16位位移给出2^18个字节的范围。

此外,您可能会注意到数据的位移没有移位,因为数据需要字节寻址。

1

该地址必须是四的倍数,所以通过自动乘以四,可以为实际使用留下更多有效位。 (换句话说,就像你真的有18位一样。)