指令集與組合語言
執行完上述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逐次遞減,同時將t1加到t0。t0依序增加為4、7、9、10,當t1變為0時,bnez(不為0則分支)不再分支,跳出迴圈。結果為4+3+2+1=10。bnez是「bne t1, zero, loop」的虛擬指令。將計數器遞減並與0比較的形式,因為不需要比較用的常數,所以經常使用。
- A. 迴圈不會只跑1次就結束。
- B. 正確。4+3+2+1=10。
- C. t1=1時的加法也要算進去。