ISA와 어셈블리
위의 RISC-V 코드를 실행 완료했을 때 t0의 값은 얼마인가?
li t0, 0
li t1, 4
loop: add t0, t0, t1
addi t1, t1, -1
bnez t1, loop
- A4
- B10
- C6
정답과 해설 보기
정답: B. 10
t1을 4에서 하나씩 줄여 가면서 t0에 t1을 더해 갑니다. t0는 4, 7, 9, 10으로 늘어나고, t1이 0이 된 시점에서 bnez(0이 아니면 분기)가 분기하지 않게 되어 루프를 빠져나옵니다. 결과는 4+3+2+1=10입니다. bnez는 'bne t1, zero, loop'의 의사 명령어입니다. 카운터를 줄이면서 0과 비교하는 형태는 비교용 상수가 필요 없어 자주 사용됩니다.