命令セット・アセンブリ

RISC-Vの基本命令とx86の命令の長さについて正しいものはどれか。

  1. Aどちらも32ビット固定長である
  2. BRISC-Vが可変長で、x86が32ビット固定長である
  3. CRISC-Vの基本命令は32ビット固定長、x86は1〜15バイトの可変長である
答えと解説を見る

正解:C. RISC-Vの基本命令は32ビット固定長、x86は1〜15バイトの可変長である

RISC-Vの基本命令はすべて32ビットで、命令の区切りがすぐ分かります(圧縮命令のC拡張を使うと16ビットの命令が混ざります)。x86は1バイトの命令から、前置きのプレフィックスや即値を含めて最大15バイトの命令まであり、次の命令の始まりは今の命令を読まないと分かりません。そのため、x86は複数の命令を同時に解読する回路が複雑になります。

  • A. x86は固定長ではありません。
  • B. 逆です。
  • C. 正しい。x86は歴史的な拡張で長さがまちまちです。
この分野を解く 分野ページへ

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

  1. 命令の長さを固定長にすることの利点として、最も適切なものはどれか。
  2. RISC-Vの命令では、レジスタを指定する欄(rd、rs1、rs2)がそれぞれ5ビットである。その理由として正しいものはどれか。
  3. RISC-Vのaddi命令の即値は12ビットの符号付き整数である。この即値で表せる範囲はどれか。
  4. RISC-Vで、12ビットの即値に収まらない32ビットの定数(例: 0x12345678)をレジスタに入れる一般的な方法はどれか。
  5. RISC-Vで定数0x12345FFFをluiとaddiの2命令で作るとき、正しい組み合わせはどれか。