第四章汇编工具.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章汇编工具

一、编译工具简介 1、构成 我们调试一个程序,首先要编辑一个源文件,这个源文件可以是汇编语言,也可以是C语言,目前,我们先介绍汇编语言,其后缀名为.asm。汇编语言的指令集有两种,我们只讲前者。 助记符指令集(Mnemonic Instruction Set)代数指令集(Algebraic Instruction Set) 编辑好汇编语言源文件后,我们需要对这个文件进行“汇编”,从而生成一个.obj后缀的中间文件。 最后,我们需要通过一个“链接”动作,把.obj文件生成一个DSP可以执行的文件,后缀为.out。链接的作用是分配执行文件代码在DSP内部程序空间的和数据空间的位置。这些分配,通过一个后缀为.cmd的文件告诉链接命令。 TMS320C54x Assembly Language Tools User’s Guide PAGE1-2 二、汇编基本语法 1、文件的内容 汇编语言指令; 汇编伪指令; 注释语句; 一个例子为EXER3.ASM文件。 2、详细语句构成介绍 一个语句包含四个命令域: [label][:] instruction [operand list] [;comment] 标号域; 指令域; 操作数域; 注释域; 除了指令域外,其他各个域不是每一条指令里面都有。 编写汇编文件原则 语句的开头只能是标号、空格、星号或分号 标号是可选项,如果使用,必须从第一列开始 每个域必须用多个或一个空格分开 注释是可选择的 标号: 标号必须从第一列开始; 标号由大小写字母,数字,下划线,$四类组成,第一个字符不可以是数字; 标号最多32个字符; 标号后可以有一个冒号,但他不算标号; 标号代表其接下来的指令的首地址; 指令域: 不可以从第一列开始; 有汇编语言指令和汇编伪指令; 例如: 汇编语言指令 stm #1,ar0 汇编伪指令 .data .set 操作数域: 操作数包括常数,符号,或者二者混合 关于汇编语言指令中操作数前缀: #用于表示立即数的前缀,其后可以是一个数字,也可以是一个存储器映射寄存器寄存器名(相当于存储器映射寄存器地址); *用于表示间接寻址的一个前缀,其后可以是寄存器名,也可以是常数(绝对地址寻址*(lk)); @用于算术指令集; 关于汇编伪指令中的立即数: 汇编伪指令中的立即数少有用,有也不需要加#前缀。 $表示当前PC值,B $是常用指令 注释域: 如果从第一列开始,可以使用;或者*,否则使用;。 每行所以字符不可以超过200个,否则200个以后的自动截去。 三、常用汇编伪指令 1、汇编伪指令的作用 将代码和数据汇编进特定的段; 为未初始化的变量保留存储空间; 存储器初始化; 定义全局变量 2、COFF文件格式 TMS320C54x Assembly Language Tools User’s Guide Page A-2,A-3 3、段定义 段分为初始化和未初始化段。 初始化段分为系统默认段和用户定义段,非初始化段也分为系统默认段和用户定义段。 系统默认初始化段为text和data段,用户定义段通过伪指令.sect实现。 系统默认非初始化段为bss段,用户定义非初始化段则是通过伪指令.uset实现。 text,data,bss,既是段名称,也是伪指令。 3、段定义 .text 默认初始化段,放置执行代码 .data 默认初始化段,放置初始化数据 .bss 默认未初始化段,放置中间数据 .sect 定义一个有名称的初始化段,段名自己定义 ,放置执行代码,使用方法 .sect “段名称字符串” .usect 定义一个有名称的未初始化段,段名自己定义,放置中间数据,使用方法 .usect “段名称字符串” 例子: 我们要完成下面任务 .text initializes words with the values 1, 2, 3, 4, 5, 6, 7, and 8. .data initializes words with the values 9, 10, 11, 12, 13, 14, 15,and 16. var_defs initializes words with the values 17 and 18. .bss rese

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档