数字信号处理dsp 第4章 tms320c54x汇编语言程序设计a

上传人:wt****50 文档编号:56607621 上传时间:2018-10-14 格式:PPT 页数:208 大小:1.07MB
返回 下载 相关 举报
数字信号处理dsp 第4章  tms320c54x汇编语言程序设计a_第1页
第1页 / 共208页
数字信号处理dsp 第4章  tms320c54x汇编语言程序设计a_第2页
第2页 / 共208页
数字信号处理dsp 第4章  tms320c54x汇编语言程序设计a_第3页
第3页 / 共208页
数字信号处理dsp 第4章  tms320c54x汇编语言程序设计a_第4页
第4页 / 共208页
数字信号处理dsp 第4章  tms320c54x汇编语言程序设计a_第5页
第5页 / 共208页
点击查看更多>>
资源描述

《数字信号处理dsp 第4章 tms320c54x汇编语言程序设计a》由会员分享,可在线阅读,更多相关《数字信号处理dsp 第4章 tms320c54x汇编语言程序设计a(208页珍藏版)》请在金锄头文库上搜索。

1、第4章 TMS320C54x汇编语言程序设计,4.1 TMS320C54x汇编语言的基本概念 4.2 TMS320C54x汇编语言程序设计的基本方法 4.3 TMS320C54x汇编语言程序的编辑、汇编与链接过程 4.4 汇编器 4.5 链接器 4.6 Simulator的使用方法 4.7 汇编程序举例,4.1 TMS320C54x汇编语言的基本概念,4.1.1 TMS320C54x汇编语句的组成汇编语言源程序中的每一行语句都可以由四部分组成,句法格式如下:标号: 助记符 操作数 ;注释其中, 为选项。书写规则如下:,(1) 所有语句必须以标号、空格、星号(*)或分号开始。(2) 所有包含伪指

2、令的语句必须在一行内完全指定。(3) 若使用标号,则标号必须从第一列开始。(4) 语句的每部分必须用一个或多个空格分开,Tab键与空格等效。,1标号所有指令或大多数伪指令前面都可带有语句标号,供本程序的其他部分或其他程序调用。标号是任选项,标号后可以加也可以不加冒号(:)。标号必须从第一列开始,其最多可长达32个字符(AZ,az,09,_和$),但第一个字符不能是数字。引用标号时,标号的大小写必须一致,标号的值就是段程序计数器(SPC)的当前值。若不用标号,则第一个字母必须为空格、分号或星号(*)。,2助记符助记符跟在标号的后面。助记符不能从第一列开始。助记符包含指令、伪指令、宏命令和宏调用。

3、作为指令,一般用大写;伪指令和宏命令则以句号(.)开始,且为小写。伪指令可以形成常数和变量,当用它控制汇编和链接过程时,可以不占存储空间。,3操作数操作数是指指令中的操作数或伪指令中定义的内容。操作数之间必须用逗号(,)分开。有的指令无操作数,如指令NOP。指令中的操作数可以是寄存器、地址、常数、算术或逻辑表达式。4注释 注释从分号(;)开始,可以放在指令或伪指令的后面,也可以单独占一行或数行。注释是任选项。如果注释从第1列开始,也可以用星号(*)。,4.1.2 TMS320C54x汇编语言中的常数、字符串、符号与表达式1常数和字符串常数就是指令中出现的那些固定值。汇编器支持7种类型的常数:二

4、进制数、十进制数、八进制数、十六进制数、字符常数、字符串和浮点常数。 二进制数:二进制数字(0或1),其后缀为B(或b)。 十进制数:用数字09表示,无后缀。, 八进制数:用数字07表示,其后缀为Q或q。 十六进制数:用数字09及字母AF表示,其后缀为h或H。 字符常数:是由单引号()括起来的1或2个字符组成的字符串,每个字符在内部表示为8位ASCII码。 字符串:是由双引号(“”)括起来的一串字符。 浮点常数:是一串十进制数,可带小数点、分数和指数部分。,2符号符号用作标号、常数和替代符号。符号名可以是长达200个字符的字母(AZ,az)、数字(09)加上$或下划线(_)。第一个字符不能是数

5、字,符号中间不能有空格。符号分大小写,例如:Abc。,3表达式1) 运算顺序影响表达式运算顺序的三个主要因素是:圆括号、优先级和同级运算顺序。圆括号内的表达式最先运算。TMS320C54x汇编器的优先级使用与C语言类似,优先级高的运算先执行。 表4-1给出了表达式中可用的运算符及优先级(p84)。,2) 表达式溢出在汇编的过程中执行算术运算后,汇编器将检查溢出状态。一旦出现上溢和下溢,它都发出值被截断了的警告信息,但在做乘法时,汇编器不检查溢出状态。3) 条件表达式汇编器在任何表达式中都支持关系操作,条件表达式多用于条件汇编。关系运算符如下:= (等于) = (等于) != (不等于) = (

6、大于等于) (大于) ,表中,.option操作数所代表的含义如下:B:把 .byte伪指令的列表限制在一行里。L:把 .long伪指令的列表限制在一行里。M:关掉列表中的宏扩展。R:复位B、M、T和W选项。T:把 .string伪指令的列表限制在一行里。W:把 .word伪指令的列表限制在一行里。X:产生一个符号交叉参照列表。,5引用伪指令 引用伪指令如表4-6所示。,表4-6 引用伪指令,6条件汇编伪指令以下分两种情况介绍条件汇编伪指令。(1) 第一种情况:.if well-defined expression.elseif well-defined expression.else.end

7、if,(2) 第二种情况: .loop well-defined expression .break well-defined expression .endloop,7符号定义伪指令 符号定义伪指令如表4-7所示。,表4-7 符号定义伪指令,8其他伪指令 其他伪指令如表4-8所示。,表4-8 其 他 伪 指 令,4.1.4 TMS320C54x宏命令TMS320C54x汇编器支持宏语言。宏命令是源程序中具有独立功能的一段程序代码,它可以根据用户的需要,由用户创建自己的指令。宏命令一经定义,便可在以后的程序中多次调用,从而可以简化和缩短源程序。其功能如下:, 定义自己的宏,重新定义已存在的宏;

8、 简化长的或复杂的汇编代码; 访问由归档器创建的宏库; 处理一个宏中的字符串; 控制展开列表。,1宏定义宏命令可以在源程序的任何位置定义,但必须在宏调用之前先定义好。宏定义也可以嵌套。定义如下:宏命令名 .macro ;宏体;.endm,2调用宏命令定义好之后,就可以在源程序中将宏命令名作为指令来调用这个宏了。格式如下:宏命令名 ,3宏展开当源程序中调用宏命令时,汇编时就将宏命令展开。在宏展开时,汇编器将实际参数传递给形式参数,再用宏定义替代宏调用语句,并对其进行汇编。上例的宏展开如下:11 00000 1000! LD abc,A 1 00001 0000! ADD def,A 1 0000

9、2 0000! ADD ghi,A 1 00003 8000! STL A,adr,4.2 TMS320C54x汇编语言程序设计的 基本方法,DSP的软件开发一般有以下几种方式: (1) 直接编写汇编语言源程序; (2) 编写C语言程序; (3) 混合编程(既有C代码,又含汇编代码)。,4.2.1 TMS320C54x汇编语言源程序的完整结构 汇编语言源程序中,以 .asm为程序的扩展名,程序员用“段”伪指令来组织程序的结构。程序一般由数据段、堆栈段和代码段组成。在4.1.3节中,我们介绍了五个段定义伪指令,.data用于存放有初值的数据块;.usect用于为堆栈保留一块存储空间;.text用

10、于设置代码段。另外,.bss用于为变量保留一块存储空间;.sect常用于定义中断向量表。程序的基本结构有四种:顺序结构、分支结构、循环结构和子程序结构。,4.2.2 顺序结构程序顺序结构是最基本、最简单的程序结构形式,程序中的语句或结构被连续执行。【例1】 试编制程序,求出下列公式中z的值。z=(x+y)8-w源程序编制如下: * * ex41.asm z=(x+y)*8-w * *,.title “ex41.asm“.mmregs STACK .usect “STACK“,10H ; 开辟堆栈空间.bss x ,1 ; 为变量分配4个字的空间.bss y ,1 .bss w ,1.bss z ,1.def start.data,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号