命令セット・アセンブリ

x86の命令「add eax, [rbx]」のように、演算命令がメモリ上の値を直接使える方式について正しいものはどれか。

  1. A命令の数は少なくできるが、1つの命令の中にメモリの読み出しと演算が含まれる
  2. Bロード・ストア・アーキテクチャと呼ばれる方式である
  3. Cメモリの値を使う演算は、レジスタ同士の演算と必ず同じ時間で終わる
答えと解説を見る

正解:A. 命令の数は少なくできるが、1つの命令の中にメモリの読み出しと演算が含まれる

x86では1つの命令で「メモリから読んで足す」ことができ、同じ処理をRISC-Vで書くと、lwとaddの2命令になります。命令の数やコードは小さくなりやすい一方、命令ごとの仕事の量がばらばらで、パイプラインで扱いにくくなります。そこで現在のx86のCPUは、内部でこうした命令をロードと加算のような単純な操作(マイクロオペレーション)に分けて実行しています。

  • A. 正しい。CISCの特徴の一つです。
  • B. ロード・ストア方式はメモリと演算を分ける方式です。
  • C. メモリの読み出しが加わる分、時間がかかります。
この分野を解く 分野ページへ

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

  1. 現在の高性能なx86のCPUが、複雑な命令を内部でどのように実行しているかの説明として正しいものはどれか。
  2. RISC-VのM拡張が基本の整数命令セットに追加する命令はどれか。
  3. RISC-VのC拡張(圧縮命令)の主な目的はどれか。
  4. M拡張のないRV32IのCPU向けに、C言語の「a * b」(int同士の掛け算)をコンパイルすると、一般にどうなるか。
  5. 昔のMIPSなどにあった分岐遅延スロット(分岐命令の直後の1命令は、分岐するかどうかに関係なく実行される決まり)について正しいものはどれか。