このフィールドは、算術および条件分岐命令によって使用されます。
最初の質問は次のとおりです。
即値演算命令と条件分岐で格納できる値の範囲は?
2 つ目は次のとおりです。
MIPS プロセッサに 64 個のレジスタがある場合、これらのレジスタを参照するために即時命令フォーマットをどのように変更しますか? フォーマットを描画してラベルを付けるにはどうすればよいですか?
このフィールドは、算術および条件分岐命令によって使用されます。
最初の質問は次のとおりです。
即値演算命令と条件分岐で格納できる値の範囲は?
2 つ目は次のとおりです。
MIPS プロセッサに 64 個のレジスタがある場合、これらのレジスタを参照するために即時命令フォーマットをどのように変更しますか? フォーマットを描画してラベルを付けるにはどうすればよいですか?
パート 1 :
この図で示されているように:
I タイプ命令には、即値フィールド用に予約された 16 ビットがあります。これはもちろん、即値フィールドが 2 16の可能な値を取ることができることを意味します。即値フィールドが正または負になる可能性があると考えると (符号には 1 ビットが使用されます)、最大値は 2 15 - 1 になり、最小値は -(2 15 - 1) になることがわかります。
andi
、ori
、およびxori
ゼロ拡張 (0 から 2 16 - 1) までのすべての MIPS I タイプの命令は、即値/オフセットを符号拡張します。
パート2:
もう一度上の図を見ると、rs レジスタと rt レジスタが 5 ビットで指定されていることがわかります。これは、mips 命令セットに 32 個のレジスタ (つまり 2 5 ) があるためです。代わりに 64 個のレジスタがある場合、rs フィールドと rt フィールドの両方が 6 ビット長である必要があるため、即値フィールドには 14 ビットしか残されません。