4.1 程序的裝入和鏈接

在計(jì)算機(jī)中,如何把我們編寫的計(jì)算機(jī)高級語言?一般要經(jīng)過幾個步驟:首先是要編譯,由編譯程序(Compiler)將用戶源代碼編譯成若干個目標(biāo)模塊(Object Module);其次是鏈接,由鏈接程序(Linker)將編譯后形成的一組目標(biāo)模塊,以及他們所需要的庫函數(shù)鏈接在一起,形成一個完整的裝入模塊(Load Module),最后是裝入,由裝入程序(Loader)將裝入模塊裝入內(nèi)存。

4.1.1 程序的裝入

在將一個裝入模塊裝入內(nèi)存時,可以有


1.絕對裝入方式
2.可重定位裝入方式
3.動態(tài)運(yùn)行時裝入方式


  1. 絕對裝入方式:
    不需要對程序和數(shù)據(jù)地址進(jìn)行修改

  2. 可重定位裝入方式:
    在裝入時對目標(biāo)程序中指令和數(shù)據(jù)的修改過程稱為重定位,又因?yàn)榈刂纷儞Q通常是在裝入時一次完成的,以后不再發(fā)生,故城為靜態(tài)重定位(靜態(tài)鏈接以后可以使用)

  3. 動態(tài)運(yùn)行時重定位:
    程序和數(shù)據(jù)的地址在內(nèi)存中的位置可能要經(jīng)常改變,此時就應(yīng)采用動態(tài)運(yùn)行時裝入的方式,在裝入模塊裝入內(nèi)存后,并不立即把裝入模塊中的相對地址換位絕對地址,而是把這種地址轉(zhuǎn)換推遲到程序真正要執(zhí)行時才進(jìn)行。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式