我的DSP之路-关于CMD文件的心得和问题.docVIP

我的DSP之路-关于CMD文件的心得和问题.doc

  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文档。上传文档
查看更多
2008-2-21 1.关于对段的定义 目标文件至少包含三个默认段: .text? ? ? ? ? ? ? ? 文本段? ? ? ? ? ? ? ? 通常包含可执行代码 .data? ? ? ? ? ? ? ? 数据段? ? ? ? ? ? ? ? 通常包含初始化的数据 .bss? ? ? ? ? ? ? ? 保留空间段? ? ? ? 通常为没有初始化的变量保留空间 自定义段: .usect ? ? ? ? 保留空间段? ? ? ? 为没有初始化的数据保留空间的自定义段 .sect? ? ? ? ? ? ? ? 初始化段? ? ? ? 自定义段 .asect? ? ? ? 初始化段 和默认段的使用相同,但它们被单独汇编。例如,重复使用.text段在目标文件中创建单个.text段,在链接时,这个.text段作为单个单元分配到存储器中。假中有一部分可执行代码(如初始化程序)不希望和.text段分配在一起,可以将它们汇编进一个自定义段,这样就可以分配在与.text段不同的地方。 不能用不同的伪指令定义相同的段。如.usect和.sect用同一个段名。 初始化段? ? ? ? .text? ? ? ? ? ? ? ? .data? ? ? ? ? ? ? ? .sect? ? ? ? ? ? ? ? .asect .text .data .sect “section name(段名)” .asect “section name” address(地址) 当汇编器第一次遇到一个.data时,.data段为空的。跟在第一个.data伪指令后的指令被汇编进.data段,直到遇到.text、.sect、.asect。如果后面还遇到.data,则将跟在这些.data后面的语句汇编时已经存在的.data段。这样就形成了单个可被连续分配到存储器中的.data段。 .asect的伪指令的address是必需的。如果使用.asect指令继续汇编一个包含代码的绝对地址段(这里应该是指同一个段名的绝对地址段,还是说.asect只能有一个有地址参数?个人认识应该是前者),那么就不能使用地址参数。 .asect将代码从片外存储器加载到片内存储器里很有用。但已经很少使用,以属于过时的指令。 未初始化段? ? ? ? .bss? ? ? ? ? ? ? ? .usect ? ? ? ? ? ? ? ? ? ? ? ? .bss? ? ? ? ? ? ? ? symbol(符号),? ? ? ? ? ? ? ? size in words(字数)[blocking flag] symbol? ? ? ? ? ? ? ? .usect? ? ? ? “section name(段名)”size in words,[blocking flag] symbol:指向.bss或.usect伪指令所保留的存储空间的第一个字。这个符号与保留空间所使用的变量名相对应。这个符号可以让其化段引用,并且也可以用一个全局符号(.global)来声明。 相当于C中定义 unsigned char symbol[size in words]; Size in words:保留空间大小。 Blocking flag:可选项。如果该参数指定一个大于0的值,则汇编器会将size in words指定的字数连续存放,分配的空间不跨页面的边界,除非字数超过一页的长度,此时电影票将从一个页面边界开始。 Section name:为保留空间的自定义段的段名。0~8个字符。最多可产生32767个不同的自定义段。 和symbol有什么不同? 段名是用来汇编器联接用的,程序里用不到;而符号是地址,程序里可以引用。 自定义的段名第一个字符也可以是 . ,如:sect “.cinit”。 初始化段定义伪指令告诉汇编器停止汇编进入当前的段,而开始汇编进入指定的段,但未初始化段定义伪指令不终止当前的段而开始一个新段,它们只是简间的临时离开当前的段。所以.bss和.usect可以出现在初始化段的任何地方而不会影响它的内容。 链接器将段重新定位到目标系统的存储器映射。大多数系统包含几种存储器,使用段可以使目标存储器的使用更为有效。所有段都可独立地重新定位,可将任意段放到目标存储器任何已经分配的块。 例子: ? ? ? ? ? ? ? ? .data Coeff? ? ? ? .word 011h,022h,033h ? ? ? ? ? ? ? ? .bss? ? ? ? ? ? ? ? var1,1 ? ? ? ? ? ? ? ? .bss? ? ? ? ? ? ? ? buffer,10 Ptr? ? ? ? ? ? ? ? .word? ? ? ? 0123 ? ? ? ? ? ? ? ? .text? ?

文档评论(0)

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

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

1亿VIP精品文档

相关文档