第七章 伪指令与宏语言_目标文件连接.pptxVIP

第七章 伪指令与宏语言_目标文件连接.pptx

  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文档。上传文档
查看更多
第七章 伪指令与宏语言_目标文件连接

1;伪指令 ;;7. 2 宏指令;宏名 —— 用通常规定的字符串格式书写。 .mexit —— 相当于“goto .endm”,用于条件判断后的转移,可缺省。 形式参数 —— 或称为替代符号。同样按通常规定的字符串格式书写。替代符 号作为宏参数仅在被定义的宏中有效。 ▲ 每个宏最多可以用32个宏参数。 ▲ 宏可以嵌套,但宏的所有元素都应在同一个文件中定义。;,;,; .C —— C源文件 .ASM ——汇编文件 .CMD —— 命令文件 .H ——头文件 .PRJ ——工程文件 .LST —— 列表文件 .MAP ——映射文件 .OBJ——目标文件 .OUT ——可执行文件 ; COFF目标文件总是包括3个默认的段 : ▲ 文本段:用.text定义,通常包括可执行代码。 ▲ 数据段:用.data定义,通常包括已初始化的数据。 ▲ 预留段:用.bss定义,通常保留用于未初始化变量的空间。; 汇编器在汇编过程中建立这些段,链接器把段重定位到目标存储器中 所有的段都是独立的、可定位的 相同的段将按先后次序定位在连续的区域内 未初始化段被定位到RAM内;初始化段可单独定位在RAM或ROM内, 并且在链接时,还可引用其他段内定义的符号;▲ 链接器通过链接COFF目标文件建立可 执行文件, ▲ 目标文件中的段是链接时的重要依据。 ▲ 链接器可把段定位到用户系 统已配置的存储器中。 ▲ 链接器命令文件(.cmd)则给出链接器在链接时的有关信息 ▲ DSP芯片的存储器配置随应用的不同而不同. 用链接器伪指令 MEMORY(存储器伪指令)可以确定目标系统的各种内存配置。 ▲ 当MEMORY决定了存储器模式后,可以用链接器伪指令SECTIONS (段伪指令)确定链接器组合输入段的方法和输出段在存储器中的位置。 ▲ 如果不使用这两条伪指令,链接器则用默认存储器的定位方式来组合段, 并把它们定位到存储器中。;链接时给符号赋值;▲ 赋值表达式:链接器表达式必须遵循以下规则: √?表达式可包含全局符号、常数,以及表7-3-1所列的C语言运算符。 √ 所有数被当做长整数(32位)处理。 √ 链接器用和汇编器相同的方式识别常数。见表7-3-2. √ 表达式中的符号只具有符号的地址值,不进行类型检查。 √ 链接器表达式可以是绝对的或可重定位的。;▲ MEMORY伪指令;PAGE: √定义一个存储器空间,用户可以定义多达255页。 √ PAGE0定义程序存储器,PAGE1定义数据存储器, 2812只有这两个页。 √如果用户没有使用PAGE选项,那么链接器把段定位到PAGE0。 √每个PAGE代表一个完全独立的地址空间。 √在PAGE0上已配置的存储器可以和在PAGE1上已配置的存储器重叠。;属性:可选项,当被使用时,必须用括号括起来。属性把输出段的定位限制在某 些存储器范围内。如果用户不使用任何属性,则输出段即可以定位到任何 范围内。有效的属性包括:R——存储器可读; W——存储器可写; X——储器可以包含可执行代码; I——存储器可被初始化。;例6.24 MEMORY指令举例 / * Sample Command file with MEMORY directive * / file1.obj file2.obj -o prog.out MEMORY { PAGE0: ROM: ORIGIN=0C00h ,LENGTH=1000h PAGE1: SCRATCH: ORIGIN =60h, LENGTH =20h RAM: ORIGIN =200h, LENGTH =200h };▲ SECTIONS伪指令 —— 描述输入段怎样被组合到输出段内;定义在执行程序中的输出段; 规定输出段在存储器中的位置;允许重新命名输出段。;特性列表的选项(段所具备的特性)有以下几种。;▲ 调准地址:规定段应在地址边界上开始。调准可以使链接器把输出段放在位 于n字边界的地址,其中n是2的幂。 语法:align=n

文档评论(0)

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

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

1亿VIP精品文档

相关文档