- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章汇编工具要点
3、命令文件编辑 文件包含参数,存储器指令,段指令 具体格式如例子: Page 139 参数:定义参加链接的目标文件; -m -e -o -c (6) 存储器指令语法: 段指令语法: TMS320C54x Assembly Language Tools User’s Guide Page 7-33 例子 File1.obj -o file1.out -e _c_int00 -m file1.map MEMORY { PAGE 0: PRO1 :origin=2000h,length=1000h PRO2:origin=3000h,length=500h PAGE 1: DAT:origin=80h,length=1000h } SECTIONS { .text: load = PRO1, run = PRO2 PAGE0 .vect: PRO2 PAGE0 .data align(128): DAT PAGE1 .bss: {}DAT PAGE1 } 4、链接执行 lnk500 [ -options] filename 1 . ... filename n 选项可以在命令文件中设置,效果一样 文件也可以在命令文件中设置,通常使用系统默认值,即不需设置 具体执行也是在CCS中 LNK500生成的OUT文件不是纯二进制代码文件,而是包含代码、符号表、代码定位信息的复合文件 通过查看MAP文件可以获得变量、子程序等符号的具体地址。注意:MAP文件只列出全局变量的地址。(用.global说明的符号) 4、链接时的几个细节 程序如何重定位? 手册 p 2-16 课本 p109 程序何时定位? 编译时定位 链接时定位 加载时定位 5、系统默认状态 TMS320C54x Assembly Language Tools User’s Guide 53;课本Page 132 表明工程没有命令文件,也可以进行编译,系统不一定会报错,但用户无法控制各个段的位置,而由于DSP程序和数据空间在物理上的复用,可能造成段间相互重叠情况。 注意,链接和汇编本质上是一个可执行文件,但在实现上确实通过CCS里面的菜单和属性设置完成 一、编译工具简介 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
文档评论(0)