命令セット・アセンブリ
RISC-Vの命令「slli t0, a0, 3」の結果t0は、a0の値の何倍になるか(あふれは考えない)。
- A8倍
- B3倍
- C6倍
答えと解説を見る
正解:A. 8倍
slli(shift left logical immediate)は、レジスタの値を左に指定したビット数だけずらし、空いた下位を0で埋めます。2進数では1ビット左にずらすと2倍になるので、3ビットなら2の3乗=8倍です。掛け算の命令より速いことが多いので、コンパイラは2のべき乗の掛け算をシフトに置き換えます。配列の要素の番地を計算するときにもよく使われます。
- A. 正しい。左に3ビットずらすと2の3乗倍です。
- B. 3はずらすビット数で、倍率ではありません。
- C. ずらすたびに2倍になるので、掛け算で考えます。