指令集與組合語言

在RISC-V的指令中,指定暫存器的欄位(rd、rs1、rs2)各為5位元。下列何者是其理由?

  1. A因為暫存器的寬度是5位元
  2. B因為一個指令最多可以使用5個暫存器
  3. C因為整數暫存器有32個,以2的5次方=32種可以指定
查看答案與解析

正確答案:C. 因為整數暫存器有32個,以2的5次方=32種可以指定

R格式的指令,從高位起由funct7(7位元)、rs2(5)、rs1(5)、funct3(3)、rd(5)、opcode(7)共32位元構成。暫存器有32個,所以編號可用5位元表示。若將暫存器增加為64個,每個欄位需要6位元,三個欄位就多用3位元,能用於立即值或指令種類的位元便會減少。暫存器的數量與指令的格式是互相關聯的。

  • A. 暫存器的寬度是32位元或64位元。
  • B. 基本指令最多使用的是rd、rs1、rs2這3個。
  • C. 正確。5位元可表示0~31。
練習這個領域 前往領域頁面

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

  1. RISC-V的addi指令的立即值是12位元帶正負號的整數。下列何者是此立即值能表示的範圍?
  2. 在RISC-V中,要將無法收進12位元立即值的32位元常數(例:0x12345678)放入暫存器,一般的方法是下列何者?
  3. 在RISC-V中以lui與addi兩個指令產生常數0x12345FFF時,正確的組合是下列何者?
  4. 下列何者是RISC-V的auipc指令(add upper immediate to PC)的動作?
  5. 在RISC-V(RV32I)中執行「addi t0, zero, -1」之後,t0中存放的32位元值是下列何者?