咱們常常用到「存儲地址和鏈接地址不一樣」(術語上稱爲加載時域和運行時域)的狀況:性能
大多機器上電時是從地址0開始運行的,可是從地址0運行程序在性能方面總有不少限制,因此通常在開始的時候,使用與位置無關的指令將程序自己複製到它的鏈接地址處,而後使用向pc寄存器賦值的方法跳到鏈接地址開始的內存上去執行剩下的代碼。spa