ISA와 어셈블리
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의 설계 사상입니다.