【學習內容:鏈結需要的**&資料;鏈結機制;鏈結生成的目標檔案】
定義:鏈結是將各種資料和**收集起來成並組合成為乙個單一檔案的過程(這個檔案可以被拷貝到儲存器並且執行)
場合:作用:
編譯驅動程式代表使用者呼叫語言預處理器、編譯器、彙編器和聯結器
預處理器將.c檔案翻譯成ascii碼中間檔案.i;
編譯器將.i檔案翻譯成ascii碼組合語言檔案.s;
彙編器將.s檔案翻譯成可重定位目標檔案.o;
鏈結器程式將.o檔案以及一些必要的檔案組合起來建立乙個可執行目標檔案;
載入器拷貝可執行檔案**和資料到儲存器然後將控制轉移到程式頭
目標檔案有三種形式:
可重定位目標檔案
節頭部表:描述目標檔案的節
可執行目標檔案
共享目標檔案(特殊的可重定位目標檔案)
鏈結器的兩個主要任務
符號解析:將每個符號引用剛好和乙個符號定義聯絡起來
重定位:鏈結器通過把每個符號定義與乙個儲存器位置聯絡起來
對於那些和引用定義在相同模組的本地符號;編譯器只允許每個模組中每個本地符號有乙個定義
對於全域性符號的解析
重定位由兩個步驟組成
重定位節和符號定義:鏈結器將所有相同型別的節合併為同一型別的新的聚合節
重定位條目:
無論何時彙編器遇到對最終位置的目標引用,它就會生成乙個重定位條目,告訴鏈結器將目標檔案合併成可執行檔案的時候如何修改這個引用
優點:圖示
載入器將可執行目標檔案中的**和資料從磁碟拷貝到儲存器中,然後通過跳轉到程式的第一條指令來執行程式
儲存器映像
每個unix程式都要加乙個執行時儲存器映像
第七周筆記
二叉排序樹 1 二叉排序樹定義與描述 二叉排序樹又稱為二叉查詢樹,它是一種特殊的二叉樹。其定義為 二叉樹排序樹或者是一棵空樹,或者是具有如 下性質的二叉樹 1 若它的左子樹非空,則左子樹.上所有結點的值均小於根結點的值 2 若它的右子樹非空,則右子樹上所有結點的值均大於 或大於等於 根結點的值 3 ...
第七周讀書筆記
pb16060002 余子昊 我是乙隻it小小鳥 讀書筆記 part2 這週有考試,讀的書不是特別多,繼續讀了一點這本書。發現每次讀這本書都有新的感悟。本週讀的這些主人公有各種各樣的人生經歷,有從小就開始接觸程式設計,但卻忽視高考沒有考上理想大學的 有高考前只知道學習,上了大學對未來很迷茫的 是我本...
Linux入門 第七周
1 bin bash 2 read p input pid value pid 讀取pid程序號 3 pid exist ps aux awk grep w pid 定義乙個字串,通過grep命令,顯示當前查詢所有使用者所有程式並列印出來 4if pid exist then 如果pid不存在,然後...