命令セット・アセンブリ

命令の長さを固定長にすることの利点として、最も適切なものはどれか。

  1. A命令の区切りがすぐ分かり、複数の命令を同時に解読しやすい
  2. Bどの命令も可変長より短くなるので、プログラムが必ず小さくなる
  3. C命令の種類をいくらでも増やせる
答えと解説を見る

正解:A. 命令の区切りがすぐ分かり、複数の命令を同時に解読しやすい

固定長なら、n番目の命令が4n バイト目から始まると決まっているので、一度にいくつもの命令を取り出して並列に解読できます。これは1サイクルに複数の命令を発行するスーパースカラのCPUで特に有利です。一方で、よく使う命令を短く表せないので、コードの大きさは可変長より大きくなりがちです。RISC-VのC拡張は、16ビットの命令を加えてこの弱点を補います。

  • A. 正しい。解読回路が単純になります。
  • B. よく使う命令を短くできる可変長の方が、コードは小さくなりやすいです。
  • C. 決まったビット数の中で表すので、種類には限りがあります。
この分野を解く 分野ページへ

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

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