MIPS の beq と bne のオフセットを 2 ビット左シフトする必要があるのはなぜですか

個人的な理解として記録してください。

上に示すように、`beq $t1, $t2 , offset`

まず、MIPS はバイトアドレス指定可能です

offset のオフセット単位はwordです。つまり、ベース アドレスからオフセットされるワード数です

したがって、ベース アドレスからのオフセット数を取得するには、オフセットを 2 ビット左にシフトする必要があります。これは、乗算と 4 の乗算に相当します (32 ビット プロセッサの場合、1 ワード = 4 バイトであるため)

次に、それをベース アドレス PC+4 に加算して、分岐ターゲット アドレスを取得します。

おすすめ

転載: blog.csdn.net/qq_35359663/article/details/129102958