How to refer memory in a program – Address Binding
決定程式起始位置,即程式要在記憶體的哪個地方開始執行。Binding 有 3 個可能執行的時機,compile time, load time 和 execution time。
Compile Time
程式中的資料、參數等必須要有對應的記憶體位置,早期的作法是在編譯期間,就決定要放在哪裡。Compiler 會將組合語言轉換成實際的記憶體位置
在 compile time 就做 binding 的缺點是若起始地址變更(可能該地址被其他 process 占住),則需要重新編譯 (recompile),等於要關閉並重新執行
Load Time
Compiler 不會決定實際的記憶體地址,而是會留一個變數(Base Register),給出相對位置。程式讀取(Load)的時候,確定 memory 哪裡有空位之後,才透過該變數決定真正的地址
YM Chen changed 3 years agoView mode Like Bookmark