DSP系統(tǒng)實(shí)驗(yàn)04New-COFF文件格式綜述課件_第1頁
DSP系統(tǒng)實(shí)驗(yàn)04New-COFF文件格式綜述課件_第2頁
DSP系統(tǒng)實(shí)驗(yàn)04New-COFF文件格式綜述課件_第3頁
DSP系統(tǒng)實(shí)驗(yàn)04New-COFF文件格式綜述課件_第4頁
DSP系統(tǒng)實(shí)驗(yàn)04New-COFF文件格式綜述課件_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、COFF文件格式 1 段(Section)2 匯編器對段的處理3 C編譯器建立的段4 鏈接器對段的處理5 COFF文件結(jié)構(gòu)COFFCommon Object File FormatELFExecutable and Linkable Format 03:42:251-COFF文件格式 1 段(Section)COFFComCOFF文件格式段(Section)1 段(Section)目標(biāo)文件中的最小單位段是代碼或數(shù)據(jù)塊的組合,它最終將在存儲器中占據(jù)一個連續(xù)的空間目標(biāo)文件的每一個段都是各自獨(dú)立的 03:42:252-COFF文件格式段(Section)1 段(SectionCOFF文件格式段(Se

2、ction) 03:42:253-COFF文件格式段(Section) 19:42COFF文件格式段(Section).text 通常包含可執(zhí)行代碼.data通常包含已初始化的數(shù)據(jù).bss 符號,字?jǐn)?shù)通常為未初始化變量保留空間COFF目標(biāo)文件的3個默認(rèn)段 03:42:254-COFF文件格式段(Section).text 通常COFF文件格式匯編器對段的處理2 匯編器對段的處理匯編器對段的處理主要是確定匯編語言程序的各部分屬于哪個特定的段如果程序中沒有用到任何偽指令來標(biāo)識段,則匯編器默認(rèn)將所有的代碼段和數(shù)據(jù)段統(tǒng)一匯編到.tex段中 03:42:255-COFF文件格式匯編器對段的處理2 匯編器

3、對段的處理匯編器COFF文件格式匯編器對段的處理COFF目標(biāo)文件的3個默認(rèn)段.text通常包含可執(zhí)行代碼.data通常包含一初始化的數(shù)據(jù).bss 符號,字?jǐn)?shù)通常為未初始化變量保留空間段的標(biāo)識匯編偽指令自定義段 .sect“段名”自定義已初始化段符號 .usect “段名”,字?jǐn)?shù)自定義未初始化段 .asect “段名”,地址自定義絕對地址段段名:程序員自己定義的段的名稱符號:指向由.bss或.usect偽指令保留的第一個字,對應(yīng)于為變量保留空間的變量名,可以在其它段中被訪問,也可以用.global偽指令定義為全局符號字?jǐn)?shù):保留空間的大小 03:42:256-COFF文件格式匯編器對段的處理COF

4、F目標(biāo)文件的3個默認(rèn)COFF文件格式匯編器對段的處理匯編偽指令.text.data.sect.asect已初始化段作用已初始化段包含可執(zhí)行代碼或已初始化數(shù)據(jù)已初始化段的內(nèi)容存儲在COFF目標(biāo)文件中,程序加載時放入存儲器中每個已初始化段可以獨(dú)立地進(jìn)行重定位,且可以訪問在其它段中定義的符號,鏈接器自動解決段之間的符號訪問問題匯編器的處理當(dāng)匯編器遇到上述偽指令之一時,停止匯編當(dāng)前段,然后把后面的代碼或數(shù)據(jù)匯編至偽指令指定的段中,直到遇見另一個.text、.data、.sect或.asect為止 03:42:257-COFF文件格式匯編器對段的處理匯編偽指令已初始化段作用匯COFF文件格式匯編器對段的

5、處理匯編偽指令.bss.usect未初始化段作用未初始化段主要用來在存儲器中保留空間,它們通常被分配到RAM中未初始化段在COFF目標(biāo)文件中沒有實(shí)際內(nèi)容,只是保留空間程序在運(yùn)行時利用這些空間來創(chuàng)建和存儲變量匯編器的處理當(dāng)匯編器遇到.bss或.usect偽指令時,并不終止對當(dāng)前段的匯編而開始一個新段,它們只是暫時從當(dāng)前段轉(zhuǎn)移開.bss和.usect偽指令可以在一個已初始化段的任何位置出現(xiàn)而不影響它的內(nèi)容 03:42:258-COFF文件格式匯編器對段的處理匯編偽指令未初始化段作用匯例Field1:源代碼行計(jì)數(shù)器Field2:段程序計(jì)數(shù)器Field3:目標(biāo)代碼Field4:源代碼語句 COFF文件

6、格式匯編器對段的處理 03:42:259-例Field1:COFF文件格式匯編器對段的處理 例(續(xù)).text 包含7個字的目標(biāo)代碼.data包含5個字的數(shù)據(jù).bss在存儲器中保留11個字newvars用.usect偽指令定義的段,在存儲器中保留8個字COFF文件格式匯編器對段的處理 03:42:2510-例(續(xù)).text COFF文件格式匯編器對段的處理 COFF文件格式C編譯器建立的段3 C編譯器建立的段例:TMS320C2x/C2xx/C5x的C編譯器建立的段 03:42:2511-COFF文件格式C編譯器建立的段3 C編譯器建立的段例:TCOFF文件格式鏈接器對段的處理4 鏈接器對段

7、的處理功能鏈接器用可重定位COFF目標(biāo)文件中的段作為輸入段,當(dāng)鏈接多于一個文件時,它組合輸入段,從而在可執(zhí)行COFF目標(biāo)文件中創(chuàng)建輸出段鏈接器為輸出段選擇存儲器地址,定位到目標(biāo)系統(tǒng)的存儲器中 03:42:2512-COFF文件格式鏈接器對段的處理4 鏈接器對段的處理功能鏈COFF文件格式鏈接器對段的處理鏈接器偽指令MEMORY:定義目標(biāo)系統(tǒng)的存儲器,可以為存儲器命名,并指定其起始地址和長度SECTIONS:告訴鏈接器如何將輸入段組合到輸出段,以及將這些輸出段存放在存儲器的什么地方鏈接器的默認(rèn)分配算法如果不給鏈接器提供MEMORY和SECTIONS命令,則鏈接器就采用缺省的分配算法 03:42:2513-COFF文件格式鏈接器對段的處理鏈接器偽指令MEMORY:COFF文件格式鏈接器對段的處理例 03:42:2514-COFF文件格式鏈接器對段的處理例 19:42:CO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論