1. ホーム
  2. constants

[解決済み] MIPSのSign拡張定数をシフトする

2022-02-15 11:31:09

質問

MIPSの分岐命令では、なぜ符号拡張された16bit定数を2シフトするのでしょうか?この考え方に戸惑っています。このシフトが符号拡張された16ビット定数に何をもたらすのでしょうか。以下はそのイメージです。

役員

解決方法は?

MIPSの命令は32ビット=4バイトなので、ブランチオフセットは4の倍数、つまりブランチオフセット1=4バイトで指定します。これにより、オフセットをバイト単位で指定する場合よりも、はるかに広い範囲の分岐オフセットが可能になります(冗長なビットが2つ存在することになるため)。もちろん、左に2シフトすることは、4倍することと同じです。