命令セット・アセンブリ
RISC-Vのaddi命令の即値は12ビットの符号付き整数である。この即値で表せる範囲はどれか。
- A0〜4095
- B-2048〜2047
- C-4096〜4095
答えと解説を見る
正解:B. -2048〜2047
12ビットの2の補数で表せるのは、-2の11乗=-2048から2の11乗-1=2047までです。即値は計算の前に32ビット(RV64では64ビット)に符号拡張されるので、負の数もそのまま足せます。この範囲を超える定数を使うには、上位20ビットをlui命令で設定してからaddiで下位12ビットを足すなど、複数の命令を組み合わせます。
- A. これは符号なし12ビットの範囲です。
- B. 正しい。2の補数の12ビットの範囲です。
- C. これは13ビット分の範囲です。