指令集與組合語言

下列何者是分支或跳躍使用PC相對定址的優點?

  1. A無論分支目標多遠,一個指令必定能到達
  2. B不需要分支預測,管線不會停頓
  3. C無論將程式載入記憶體的哪個位址,都不必改寫指令就能執行
查看答案與解析

正確答案:C. 無論將程式載入記憶體的哪個位址,都不必改寫指令就能執行

PC相對的分支是以「從這裡往前多少位元組」的距離來表示目的地,所以即使將整個程式移到別的位址,距離也不變,可以直接執行。這是共用函式庫等使用的位置無關程式碼(PIC)的基礎。不過因為表示距離的位元數有限,要跳到遠處時,會組合使用auipc與jalr。分支預測的必要性與表示方式無關。

  • A. 立即值的寬度有限,所以能到達的範圍有限。
  • B. 分支目標的表示方式與分支預測是不同的問題。
  • C. 正確。更容易製作位置無關的程式碼。
練習這個領域 前往領域頁面

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

  1. 關於RISC-V的基本指令與x86指令的長度,下列何者正確?
  2. 下列何者最適合作為指令採用固定長度的優點?
  3. 在RISC-V的指令中,指定暫存器的欄位(rd、rs1、rs2)各為5位元。下列何者是其理由?
  4. RISC-V的addi指令的立即值是12位元帶正負號的整數。下列何者是此立即值能表示的範圍?
  5. 在RISC-V中,要將無法收進12位元立即值的32位元常數(例:0x12345678)放入暫存器,一般的方法是下列何者?