第4章 汇编语言程序设计20110922.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文档。上传文档
查看更多
第4章 汇编语言程序设计20110922

第4章 汇编语言程序设计 第4章 汇编语言程序设计 目录: 4.1 C54x的软件开发过程 4.2 公共目标文件格式COFF 4.3 汇编器的伪指令 4.4 C54x汇编语言的有关知识 4.5 汇编语言程序设计 提供2种编程语言:汇编语言 C/C++语言 对于完成一般功能的代码,这两种语言都可使用,但对于一些运算量很大的关键代码,最好采用汇编语言来完成,以提高程序的运算效率。 C54x的软件开发过程可以分为文本编辑、编译、汇编和连接这样四个基本步骤,如图4-1所示。 C54x的软件开发需要借助于TI公司提供的软件开发工具:编译器、汇编器和连接器,另外还有一些辅助的软件包,如归档器、列表器和代码转换器等。 这些软件开发工具都被集成在CCS(Code Composer Studio)开发环境中。将在第6章详细介绍CCS的组成及其使用方法 汇编器和链接器生成的目标文件,是一个可以由C54x器件执行的文件。这些目标文件的格式称之为公共目标文件格式(COFF)。 COFF文件有3种类型:COFF0、COFF1、COFF2 每种类型的COFF文件,其标题格式都有所不同,但数据部分是相同的。 4.2.1分段结构 所谓“段”就是在存储器映像中占据连续空间的一段独立的代码或数据。每个目标文件都分成若干段。 1.已初始化段 包含程序代码、常数表格和数据。每个段都可以独立的进行重定位重定位,且可访问在其它段中定义的符号。已初始化段的值是不可修改的,因而一般将它们建立在程序存储器中。 2.未初始化段 是为变量在数据存储器中保留空间的。它们在目标文件中没有实际内容,只是保留出空间,在运行程序时再利用这些空间去建立和存储变量。未初始化段一般应建立在片内或片外RAM中。 3. 段定义伪指令 定义已初始化段的伪指令 .text [段起点] .data [段起点] .sect “段名”[,段起点] (1) .bss伪指令: 用于在bss段中保留若干个空间。 格式:.bss 符号, 字数 [, [块标记][, 定位标记]] (2) .usect伪指令 用于为指定的命名段保留若干个空间。 格式: 标号 .usect “段名”,字数 [, [块标记][, 定位标记]] 例4-1:段定义程序举例。 .text .word 1,2,3,4,5,6,7,8 .data .word 9,10,11,12 .word 13,14 .word 15,16 .sect “var1” .word 17,18 .bss x1,19 ;为.bss段保留19个字单元空间。 y1 .usect “var2”, 40; 为var2段保留40个单元空间。 .text段:8个16位字1~8。 .data段:8个16位字9~16。 Var1段:2个16位字17,18。 .bss段:保留19个字的连续空间,第一个单 元的标号是x1。 Var2段:保留40个字的连续空间,第一个单元的标号是y1。 4.2.2 汇编器对段的建立 段程序计数器SPC 例4-2 段定义应用举例 4.2.3 连接器对段的处理 定位: 连接器将.text、.data、.bss等段存放到硬件系统的存储空间中去,这就是定位。 1. 存储器映射定位 2. 连接器的两个主要伪指令 2. 连接器的两个主要伪指令 2)SECTIONS命令 SECTIONS用来告诉连接器怎样组合输入段以及在存储器的何处存放输出段。在MEMORY指定了一种存储模式后,就应使用SECTIONS去定位。 name定义一个输出文件中的输出段名,该名称不能任意指定,而是在汇编器中已经指定的段名。 property定义段的内容以及指明它是怎样被分配的。 3. 缺省定位(默认定位) 例4-4 TMS320C54x的缺省定位 4.3 汇编器的伪指令 (6) 定义宏的伪指令 如.macro等 例4-6 该例说明.field伪指令如何将字段打包成字。假设汇编了下列代码段。 这类伪指令用于对

文档评论(0)

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

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

1亿VIP精品文档

相关文档