命令セット・アセンブリ

RISC-VのRV32I(32ビットの基本整数命令セット)が持つ汎用の整数レジスタとして正しいものはどれか。

  1. A32ビット幅のレジスタが32本(x0〜x31)
  2. B32ビット幅のレジスタが8本(x0〜x7)
  3. C64ビット幅のレジスタが64本(x0〜x63)
答えと解説を見る

正解:A. 32ビット幅のレジスタが32本(x0〜x31)

RV32Iの整数レジスタはx0〜x31の32本で、幅は32ビットです(64ビット版のRV64Iでは幅が64ビットになり、本数は同じ32本です)。命令の中でレジスタを指定する欄は5ビットで、2の5乗=32本を表せます。ra、sp、a0のような別名もあり、呼び出し規約で役割が決められています。組込み向けには16本に減らしたRV32Eもあります。

  • A. 正しい。x0〜x31の32本で、x0は常に0です。
  • B. 8本はx86の32ビット版の汎用レジスタの数に近い値です。
  • C. 64ビット版のRV64Iでも、本数は32本です。
この分野を解く 分野ページへ

命令セット・アセンブリのほかの問題

  1. アセンブリ言語と機械語の関係として正しいものはどれか。
  2. RISC-Vの疑似命令「nop」(何もしない)は、アセンブラによって実際にはどの命令に置き換えられるか。
  3. RISC-Vの「add」命令と「addi」命令の違いとして正しいものはどれか。
  4. 上のRISC-Vのコードを実行した後、レジスタa2の値はいくらか。
  5. RISC-Vの命令「lw t0, 8(sp)」の動作として正しいものはどれか。