ISA와 어셈블리
RISC-V의 'add' 명령어와 'addi' 명령어의 차이로 올바른 것은?
- Aadd는 정수를 더하고 addi는 부동소수점수를 더한다
- Badd는 메모리 상의 값을 더하고 addi는 레지스터의 값을 더한다
- Cadd는 레지스터끼리 더하고 addi는 레지스터와 명령어 안에 적힌 상수(즉치값)를 더한다
정답과 해설 보기
정답: C. add는 레지스터끼리 더하고 addi는 레지스터와 명령어 안에 적힌 상수(즉치값)를 더한다
'add rd, rs1, rs2'는 두 레지스터의 합을 rd에 넣고, 'addi rd, rs1, imm'은 레지스터와 명령어 안에 내장된 12비트 상수(즉치값)를 더합니다. 즉치값을 사용하면 상수를 일단 레지스터에 준비하는 수고를 덜 수 있습니다. RISC-V에는 뺄셈의 즉치 명령어가 없으며, 'addi t0, t0, -1'처럼 음수 즉치값을 더해 뺄셈을 합니다.