命令セット・アセンブリ
RISC-Vの疑似命令「nop」(何もしない)は、アセンブラによって実際にはどの命令に置き換えられるか。
- Aaddi x0, x0, 0
- Bjal ra, 0
- Clw x0, 0(sp)
答えと解説を見る
正解:A. addi x0, x0, 0
RISC-Vには「何もしない」専用の命令はなく、nopは「addi x0, x0, 0」として表されます。x0への書き込みは捨てられるので、レジスタもメモリも何も変わりません。同様に「mv rd, rs」は「addi rd, rs, 0」、「j label」は「jal x0, label」、「ret」は「jalr x0, 0(ra)」です。x0を使って命令の種類を少なく保つのがRISC-Vの設計の考え方です。
- A. 正しい。結果をx0に捨てる加算です。
- B. raを書き換えてしまうので、何もしない命令になりません。
- C. メモリを読むので、例外が起きる可能性もあります。