推薦教學:windows運維
##簡介
位址重定位 分為兩種:靜態位址重定位和動態位址重定位。
靜態定位
靜態位址重定位是在虛擬空間程式執行之前,由組裝程式完成的位址對映工作。對於虛擬空間內的指令和資料來說,靜態位址重定位只完成了一個首位址不同的連續位址變換。它要求所有待執行的程式必須在程式執行之前完成它們之間的鏈接,否則將無法得到正確的記憶體位址和記憶體空間。靜態位址重定位的優點是不需要硬體支持,但是缺點是必須佔有連續的記憶體空間,這就難以做到資料和程式的共享。
動態定位
動態位址重定位是程式在執行過程中,在CPU存取記憶體之前,將要存取的程序或資料位址轉換為記憶體位址。動態位址重定位需要硬體的支援。 位址重定位機構需要一個或多個基底位址暫存器BR與一個或多個程式虛擬位址暫存器VR,指令或資料的記憶體位址MA與虛擬位址的計算關係如下:MA=(BR) (VR),這裡的(BR),(VR)分別表示暫存器中的內容。動態重定位的優點有:記憶體可以不連續分配、提供實現虛存的基礎、有利於程式共享。
以上是地址重定位指的是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!