連結器與載入器與執行檔格式
關於位置獨立程式碼(PIC),下列說明何者正確?
- A在任何CPU上都以相同方式運作的機器碼
- B在執行中持續移動自己所在位置的機器碼
- C無論載入到記憶體的哪個位址,都不必改寫程式碼就能正確運作的機器碼
查看答案與解析
正確答案:C. 無論載入到記憶體的哪個位址,都不必改寫程式碼就能正確運作的機器碼
共用函式庫可能依行程不同而被載入到不同的位址。在位置獨立程式碼中,函式與資料不是以固定位址參照,而是透過與PC的距離,或彙整位址的表(GOT)來參照。如此一來,即使載入的位址改變,也不必改寫程式碼的分頁,因此實體記憶體上的同一份副本可由許多行程共用。
- A. 機器碼會因CPU的ISA而異。
- B. 並不是持續移動所在位置。
- C. 正確。是共用函式庫不可或缺的。