DSP系统实验04New-COFF文件格式综述课件_第1页
DSP系统实验04New-COFF文件格式综述课件_第2页
DSP系统实验04New-COFF文件格式综述课件_第3页
DSP系统实验04New-COFF文件格式综述课件_第4页
DSP系统实验04New-COFF文件格式综述课件_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、COFF文件格式 1 段(Section)2 汇编器对段的处理3 C编译器建立的段4 链接器对段的处理5 COFF文件结构COFFCommon Object File FormatELFExecutable and Linkable Format 03:42:251-COFF文件格式 1 段(Section)COFFComCOFF文件格式段(Section)1 段(Section)目标文件中的最小单位段是代码或数据块的组合,它最终将在存储器中占据一个连续的空间目标文件的每一个段都是各自独立的 03:42:252-COFF文件格式段(Section)1 段(SectionCOFF文件格式段(Se

2、ction) 03:42:253-COFF文件格式段(Section) 19:42COFF文件格式段(Section).text 通常包含可执行代码.data通常包含已初始化的数据.bss 符号,字数通常为未初始化变量保留空间COFF目标文件的3个默认段 03:42:254-COFF文件格式段(Section).text 通常COFF文件格式汇编器对段的处理2 汇编器对段的处理汇编器对段的处理主要是确定汇编语言程序的各部分属于哪个特定的段如果程序中没有用到任何伪指令来标识段,则汇编器默认将所有的代码段和数据段统一汇编到.tex段中 03:42:255-COFF文件格式汇编器对段的处理2 汇编器

3、对段的处理汇编器COFF文件格式汇编器对段的处理COFF目标文件的3个默认段.text通常包含可执行代码.data通常包含一初始化的数据.bss 符号,字数通常为未初始化变量保留空间段的标识汇编伪指令自定义段 .sect“段名”自定义已初始化段符号 .usect “段名”,字数自定义未初始化段 .asect “段名”,地址自定义绝对地址段段名:程序员自己定义的段的名称符号:指向由.bss或.usect伪指令保留的第一个字,对应于为变量保留空间的变量名,可以在其它段中被访问,也可以用.global伪指令定义为全局符号字数:保留空间的大小 03:42:256-COFF文件格式汇编器对段的处理COF

4、F目标文件的3个默认COFF文件格式汇编器对段的处理汇编伪指令.text.data.sect.asect已初始化段作用已初始化段包含可执行代码或已初始化数据已初始化段的内容存储在COFF目标文件中,程序加载时放入存储器中每个已初始化段可以独立地进行重定位,且可以访问在其它段中定义的符号,链接器自动解决段之间的符号访问问题汇编器的处理当汇编器遇到上述伪指令之一时,停止汇编当前段,然后把后面的代码或数据汇编至伪指令指定的段中,直到遇见另一个.text、.data、.sect或.asect为止 03:42:257-COFF文件格式汇编器对段的处理汇编伪指令已初始化段作用汇COFF文件格式汇编器对段的

5、处理汇编伪指令.bss.usect未初始化段作用未初始化段主要用来在存储器中保留空间,它们通常被分配到RAM中未初始化段在COFF目标文件中没有实际内容,只是保留空间程序在运行时利用这些空间来创建和存储变量汇编器的处理当汇编器遇到.bss或.usect伪指令时,并不终止对当前段的汇编而开始一个新段,它们只是暂时从当前段转移开.bss和.usect伪指令可以在一个已初始化段的任何位置出现而不影响它的内容 03:42:258-COFF文件格式汇编器对段的处理汇编伪指令未初始化段作用汇例Field1:源代码行计数器Field2:段程序计数器Field3:目标代码Field4:源代码语句 COFF文件

6、格式汇编器对段的处理 03:42:259-例Field1:COFF文件格式汇编器对段的处理 例(续).text 包含7个字的目标代码.data包含5个字的数据.bss在存储器中保留11个字newvars用.usect伪指令定义的段,在存储器中保留8个字COFF文件格式汇编器对段的处理 03:42:2510-例(续).text COFF文件格式汇编器对段的处理 COFF文件格式C编译器建立的段3 C编译器建立的段例:TMS320C2x/C2xx/C5x的C编译器建立的段 03:42:2511-COFF文件格式C编译器建立的段3 C编译器建立的段例:TCOFF文件格式链接器对段的处理4 链接器对段

7、的处理功能链接器用可重定位COFF目标文件中的段作为输入段,当链接多于一个文件时,它组合输入段,从而在可执行COFF目标文件中创建输出段链接器为输出段选择存储器地址,定位到目标系统的存储器中 03:42:2512-COFF文件格式链接器对段的处理4 链接器对段的处理功能链COFF文件格式链接器对段的处理链接器伪指令MEMORY:定义目标系统的存储器,可以为存储器命名,并指定其起始地址和长度SECTIONS:告诉链接器如何将输入段组合到输出段,以及将这些输出段存放在存储器的什么地方链接器的默认分配算法如果不给链接器提供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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论