coff文件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
coff文件

COFF目标文件中的段有两种基本类型。 ? 初始化段 初始化段中包含有数据或程序代码。主要有: .text段——已初始化段; .data段——已初始化段; .sect段——已初始化段,由汇编器伪指令建立 的自定义段。 ? 未初始化段 在存储空间中为未初始化数据保留存储空间。包括: .bss段——未初始化段; .usect段——未初始化段,由汇编命令建立的命 名段(自定义段)。 PAGE: 指定存储器空间页面,最多为255页,取决于目标存储器的配置。 每一个PAGE代表一个完全独立的地址空间。 通常,PAGE 0用于程序存储器; PAGE 1用于数据存储器。 若没有规定PAGE,则链接器默认为PAGE 0。 name: 存储器区间名称。可由用字母、$、.、_ 等组成。 存储器区间为内部记号,因此不需要保留在输出文件或者符号表中。 不同PAGE上的存储器区间可以取相同的名字,但在同一PAGE内的名字不能相同,且不许重叠配置。 origin: 用来指定存储区间的起始地址,可简 写为org或o。其值以字为单位,可以 用十进制、八进制或十六进制数表示。 Length: 用来指定存储器空间的长度,可简写 为len或l,其值以字为单位,可以用 十进制、八进制或十六进制数表示。 * COFF的一般概念 汇编器和链接器生成的目标文件,是一个可以由’C54x器件执行的文件。这些目标文件的格式称之为公共目标文件格式(COFF)。 在编写汇编语言程序时,COFF采用代码段和数据段的形式,以便于模块化的编程,使编程和管理变得更加方便。 这些代码段和数据段简称为段。汇编器和链接器提供一些伪指令来建立和管理各种各样的段。 COFF文件的基本单元 段(sections) 是COFF文件中最重要的概念。每个目标文件都分成若干段。 段——是存储器中占据相邻空间的代码或数据块。一个目标文件中的每个段都是分开的和各不相同的。 段与目标存储器的对应关系 汇编器的任务:在汇编过程中,根据汇编命令用适当的段将各部分程序代码和数据连在一起,构成目标文件。 链接器的任务:就是分配存储单元,将目标文件中的段重新定位到目标系统的存储器中,这一过程称为定位或分配。 目标文件中的段与目标存储器之间的关系 目标文件 目标存储器 .bss .data .text RAM E2PROM ROM 链接器对段的处理 在命令文件中用MEMORY和SECTIONS伪指令定义存储器和配置段地址。 ● MEMORY伪指令——用来定义目标系统的存储器配置空间,包括对存储器各部分命名,以及规定它们的起始地址和长度。 ● SECTIONS伪指令——用来指定链接器将输入段组合成输出段方式,以及输出段在存储器中的位置,也可用于指定子段。 若未使用伪指令,则链接器将使用目标处理器默认的方法将段放入存储空间。 MEMORY指令 MEMORY指令用来规定目标存储器的结构。 在实际的应用中,目标系统所配置的存储器是各不相同的,通过MEMORY指令,可以进行各种各样的存储器配置。 MEMORY指令的句法: MEMORY { PAGE0:name 1[(attr)]:origin=constant, length=constant; PAGEn:name n[(attr)]:origin=constant, length=constant; } 指令字 存储区间说明语句 书写方式:① 由大写MEMORY指令字开始; ② 由大括号括起来的存储器区间说明。 存储区间: 存储页面 区间名称 区间属性 起始地址 区间长度 存储区间说明语句: SECTIONS指令 用来控制段的构成与地址分配。 指令功能: ① 说明如何将输入段组合成输出段; ② 在可执行程序中定义输出段; ③ 规定输出段在存储器中的存放位置; ④ 允许重新命名输出段。 SECTIONS指令语法 SECTIONS指令的句法: SECTIONS { name:[property, property, property, …] name:[property, property, property, …] name:[property, property, property, …] } 指令字 输出段

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档