指令集與組合語言

下列何者是RISC-V的RV32I(32位元基本整數指令集)所具備的通用整數暫存器?

  1. A32位元寬的暫存器共32個(x0~x31)
  2. B32位元寬的暫存器共8個(x0~x7)
  3. C64位元寬的暫存器共64個(x0~x63)
查看答案與解析

正確答案:A. 32位元寬的暫存器共32個(x0~x31)

RV32I的整數暫存器為x0~x31共32個,寬度為32位元(64位元版的RV64I寬度為64位元,數量同樣是32個)。指令中指定暫存器的欄位為5位元,可表示2的5次方=32個。另有ra、sp、a0等別名,其角色由呼叫慣例(calling convention)規定。嵌入式用途還有減為16個的RV32E。

  • A. 正確。x0~x31共32個,x0永遠為0。
  • B. 8個接近x86的32位元版通用暫存器的數量。
  • C. 即使是64位元版的RV64I,數量也是32個。
練習這個領域 前往領域頁面

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

  1. 下列何者是組合語言與機器語言之間的關係?
  2. RISC-V的虛擬指令「nop」(什麼都不做),實際上會被組譯器替換為下列哪一個指令?
  3. 下列何者是RISC-V的「add」指令與「addi」指令的差異?
  4. 執行上述RISC-V程式碼之後,暫存器a2的值是多少?
  5. 下列何者是RISC-V指令「lw t0, 8(sp)」的動作?