指令集與組合語言

執行上述RISC-V程式碼之後,暫存器a2的值是多少?

addi a0, zero, 5
addi a1, a0, 3
add  a2, a0, a1
  1. A8
  2. B13
  3. C15
查看答案與解析

正確答案:B. 13

第1行是對zero(永遠為0)加5,得到a0=5;第2行是對a0加3,得到a1=8;第3行是將a0與a1相加,得到a2=5+8=13。RISC-V的算術指令依「指令 寫入目的地, 讀取來源1, 讀取來源2(或立即值)」的順序書寫,第一個暫存器是存放結果的地方。zero是x0的別名,常用於產生常數。

  • A. 8是a1的值。
  • B. 正確。5+8=13。
  • C. 請將a1重新計算為5+3=8。
練習這個領域 前往領域頁面

指令集與組合語言的其他題目

  1. 下列何者是RISC-V指令「lw t0, 8(sp)」的動作?
  2. 在RISC-V的條件分支指令「beq a0, a1, label」中,分支目標label的位址是如何表示的?
  3. 下列何者是分支或跳躍使用PC相對定址的優點?
  4. 關於RISC-V的基本指令與x86指令的長度,下列何者正確?
  5. 下列何者最適合作為指令採用固定長度的優點?