命令セット・アセンブリ
RISC-Vのレジスタx0(zero)の性質として正しいものはどれか。
- A読むと常に0で、書き込んでも値は変わらない
- B関数の戻り先のアドレスを保持する
- C直前の演算の結果が0だったかどうかを示すフラグになる
答えと解説を見る
正解:A. 読むと常に0で、書き込んでも値は変わらない
x0は常に0を返す特別なレジスタで、書き込みは無視されます。0という定数がいつでも使えるので、「add rd, rs, x0」で値のコピー、「addi rd, x0, 5」で定数の設定、結果を捨てたいときは書き込み先をx0にする、といった使い方ができ、専用の命令を増やさずに済みます。戻り先アドレスはx1(ra)に入ります。RISC-Vは演算結果のフラグを持たず、分岐命令が2つのレジスタを直接比べます。
- A. 正しい。常に0の定数レジスタです。
- B. 戻り先アドレスはx1(ra)に入ります。
- C. RISC-Vには結果のフラグを持つレジスタはありません。