命令セット・アセンブリ
条件分岐のしくみについて、RISC-Vとx86の違いとして正しいものはどれか。
- ARISC-Vはフラグを見て分岐し、x86は分岐命令が2つのレジスタを直接比べる
- Bどちらも条件分岐の命令を持たず、表引きでジャンプ先を決める
- CRISC-Vは分岐命令が2つのレジスタを直接比べ、x86は比較命令が設定したフラグを見て分岐する
答えと解説を見る
正解:C. RISC-Vは分岐命令が2つのレジスタを直接比べ、x86は比較命令が設定したフラグを見て分岐する
x86では「cmp eax, ebx」で比較してゼロや桁上がりなどのフラグ(条件コード)を設定し、次の「je」や「jl」がフラグを見て分岐します。RISC-Vはフラグを持たず、「beq a0, a1, L」「blt a0, a1, L」のように分岐命令自身が2つのレジスタを比べます。フラグのような暗黙の状態がないので、命令の並べ替えや同時実行のときに依存関係を追いやすくなります。
- A. 逆です。
- B. どちらも条件分岐命令を持っています。
- C. 正しい。RISC-Vは比較と分岐が1命令です。