指令集與組合語言

在RISC-V的條件分支指令「beq a0, a1, label」中,分支目標label的位址是如何表示的?

  1. A分支目標的位址本身(32位元)放在指令中
  2. B以距離分支指令本身位址(PC)的距離放在指令中
  3. C必須先將分支目標的位址放入a1暫存器
查看答案與解析

正確答案:B. 以距離分支指令本身位址(PC)的距離放在指令中

RISC-V的分支指令,是以「距離目前指令的位址(PC)往前多少位元組」這種帶正負號的距離來表示分支目標,稱為PC相對定址。分支目標通常就在附近,所以短距離就足夠,可以收納在32位元的指令中。此外,即使將整個程式放在其他位址,距離也不變,因此還有不必改寫就能執行的優點。

  • A. 32位元的指令放不下32位元的位址。
  • B. 正確。是PC相對定址。
  • C. a1是要比較的值之一,不是位址。
練習這個領域 前往領域頁面

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

  1. 下列何者是分支或跳躍使用PC相對定址的優點?
  2. 關於RISC-V的基本指令與x86指令的長度,下列何者正確?
  3. 下列何者最適合作為指令採用固定長度的優點?
  4. 在RISC-V的指令中,指定暫存器的欄位(rd、rs1、rs2)各為5位元。下列何者是其理由?
  5. RISC-V的addi指令的立即值是12位元帶正負號的整數。下列何者是此立即值能表示的範圍?