指令集與組合語言
在RISC-V的條件分支指令「beq a0, a1, label」中,分支目標label的位址是如何表示的?
- A分支目標的位址本身(32位元)放在指令中
- B以距離分支指令本身位址(PC)的距離放在指令中
- C必須先將分支目標的位址放入a1暫存器
查看答案與解析
正確答案:B. 以距離分支指令本身位址(PC)的距離放在指令中
RISC-V的分支指令,是以「距離目前指令的位址(PC)往前多少位元組」這種帶正負號的距離來表示分支目標,稱為PC相對定址。分支目標通常就在附近,所以短距離就足夠,可以收納在32位元的指令中。此外,即使將整個程式放在其他位址,距離也不變,因此還有不必改寫就能執行的優點。
- A. 32位元的指令放不下32位元的位址。
- B. 正確。是PC相對定址。
- C. a1是要比較的值之一,不是位址。