命令セット・アセンブリ
RISC-Vの命令「slt t0, a0, a1」の動作として正しいものはどれか。
- Aa0をa1ビットだけ左にずらしてt0に入れる
- Ba0がa1より小さければ、t0の番地へ分岐する
- Ca0がa1より小さければt0に1を、そうでなければ0を入れる
答えと解説を見る
正解:C. a0がa1より小さければt0に1を、そうでなければ0を入れる
slt(set less than)は、2つのレジスタを符号付き整数として比べ、小さければ1、そうでなければ0を書き込みます。符号なしで比べるsltu、即値と比べるsltiもあります。C言語の「x = (a < b);」のように比較の結果を値として使うときや、分岐をなくして条件を計算で表すときに使われます。シフトはsll、分岐はbltなどの別の命令です。
- A. 左シフトはsll命令です。
- B. sltは分岐しません。
- C. 正しい。set less thanの略です。