命令セット・アセンブリ
RISC-Vの条件分岐命令(B形式)は、分岐先までの距離を13ビットの符号付きのバイト数で表し、その最下位ビットは常に0として命令に入れない。分岐命令が直接届く範囲としておよそ正しいものはどれか。
- A分岐命令から前後およそ4KiB
- B分岐命令から前後およそ1MiB
- Cメモリ全体のどこへでも届く
答えと解説を見る
正解:A. 分岐命令から前後およそ4KiB
13ビットの符号付きの値は-4096〜+4095を表せますが、命令は2バイト単位で並ぶので最下位ビットは常に0で、範囲は-4096〜+4094バイトです。最下位ビットを省くことで、同じ欄の大きさで2倍の範囲に届きます。これより遠い分岐は、条件を逆にした短い分岐で、遠くへ届くjal(およそ±1MiB)を飛び越える形に、アセンブラが書き換えます。
- A. 正しい。-4096〜+4094バイトです。
- B. およそ1MiBはjal命令(21ビット)の範囲です。
- C. 限られたビット数では全体には届きません。