dsp第六章汇编程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章 汇编语言程序设计
• 汇编语言包括汇编指令、伪指令和宏指令。 ➢ 汇编指令即为DSP指令系统,该类指令在汇编时将产生一一对应的目标代码; ➢ 伪指令仅在汇编和连接时提供控制信息和数据,并不产生目标代码; ➢ 宏指令则是用户自己创建的“指令”,在汇编时将其展开并汇编为对应的目标代码 • 汇编语言源程序经过汇编器汇编生成机器语言目标程序; • 再由连接器将多个目标程序连接成一个单一的可执行程序
• 用.set伪指令对符号进行赋值
例: SHIFT .set 3
即 SHIFT = 3
2.字符串 • 字符串是包含在双引号内的一串字符; • 字符在内部被表示为8位ASCII码 • 字符中用于下列场合:
.copy “filename ”中的文件名; .sect “section name”中的段名; .byte “charstring ”中数据初始化伪指令 .string 伪指令的操作数。 3.符号 • 符号被用做标号、常数及替代符号; • 符号名最多可由32个字母和数字混合组成; • 符号的第一个字符不能是数字,符号内不能有空格; • 由户定义的符号分大小写 例如汇编时ABc、Abc、 abc被识别为3个不同的符号。 • 用汇编器选项(-C)可消除对大小写的识别。
以分号(;)开始。
二、 常数、字符串和符号
1.常数 • 汇编器支持6种类型的常数; ➢ 二进制整数 ➢ 八进制整数 ➢ 十进制整数 ➢ 十六进制整数 ➢ 字符常数 ➢ 汇编时间常数
• 以字母B(或b)结尾, • 由二进制数字(0,1)组成的数字串。 • 长度最大为16位 例:
• 00101000b • 10001111B
DSP
汇 编 程 序 设 计 开 发 过 程
汇编语言程序的编辑、汇编、链接过程
编辑 Edit
.asm 汇编源 程序
汇编 dspa
-l源自文库
.lst 列表 文件
.cmd 连接命令
文件
.obj 目标 文件
链接 dsplnk
-m
.out 输出 文件
仿真 Simulator Emulator
.map 内存映像
#SYMl ;将2装入DP
.word 016h ;初始化一个字为16h
1. 标号域

标号域是任选域,若使用必须从源语句的第一列开始书写。

标号包含1-32个字母、数字、字符,可识别符号的大小写,且规定第一个字符不能是数字;

标号后可加或不加冒号(:) ;

如果不使用标号,则第一个字必须是空格或分号或星号。
汇编指令 —— 一般用大写 (例如ABS,MPY SPH); 伪指令 —— 用“ . ”开始,且为小写
(例如 .data, .list .set): 宏指令 —— 同伪指令 (例如 .macro .endm)。
3. 操作数域 • 操作数域是跟在助记符域后面的操作数列表,可缺省。 • 如果多于两个操作数,则用逗号隔开。 • 操作数可以是常数、符号和表达式。 4. 注释域 • 注释域可以从源语句行的任一列开始并直至本行的末尾; • 如果它从第一列开始则可以用分号(;)或星号(*)开始,在行的其他地方开始的注释,必须
二、 常数、字符串和符号
1.常数 • 汇编器支持6种类型的常数; ➢ 二进制整数 ➢ 八进制整数 ➢ 十进制整数 ➢ 十六进制整数 ➢ 字符常数 ➢ 汇编时间常数
• 以字母Q(或q)结尾 ; • 由八进制数宁(0-7)组成的数字串。 • 长度最大为6位 例:
• 103010q • 300000Q
二、 常数、字符串和符号
dsp第六章汇编程序
第六章 汇编语言程序设计
汇编语言——DSP的灵魂 有一位长期从事单片机开发的工程师说: • “每一条汇编指令都执行了一个硬件操作。” • “单片机本质上是一条条汇编语言。把一条条汇编指令搞清楚了,也就把单片机彻底掌
握了。”
第六章 汇编语言程序设计
使用汇编语言编写程序的好处: • 汇编速度快、效率高、实时性好; • 对汇编语言的理解和掌握能使程序员写出更好的C语言代码; • 对汇编语言编程可精确控制DSP的时间特性; • C语言存在无法控制的盲区(寄存器)

当选用标号时,其值为段程序计数器(SPC)的当前值,标号指向与它们相关联的语句。
例: 行号 10
SPC 0040
目标代码 000A 0003 0007
源语句 START: .word
0Ah, 3, 7
标号START的值为40h,它指向字0Ah。
2. 助记符域 • 助记符是源语句中的关键部分,不能缺省,它表示本指令的操作类型。 • 助记符不能从源语句的第一列开始,如果从第一列开始,将被解释为标号。 • 助记符包括下列操作码之一
1.常数 • 汇编器支持6种类型的常数; ➢ 二进制整数 ➢ 八进制整数 ➢ 十进制整数 ➢ 十六进制整数 ➢ 字符常数 ➢ 汇编时间常数
• 以字母H(或h)结尾; • 由十六进制数字。0-9和A-F(或a-f)组成的
数字串。 • 长度最大为4位 例:
• 032Fh • 1A03H
二、 常数、字符串和符号
§6.2 伪指令
• 伪指令仅在汇编和连接时提供控制信息和数据,并不产生目标代码; • TMS320C2000的汇编伪指令的功能: ➢ 汇编代码和数据到指定的段; ➢ 为未定义的变量保存空间; ➢ 控制列表文件; ➢ 分配存储器; ➢ 汇编条件块; ➢ 定义全局变量; ➢ 指定汇编器能得到的宏; ➢ 检查符号调试信息。
文件
§6.1 汇编语言格式
一、语言格式 • TMS320汇编语言源程序由源语句组成。 • 源语句包括汇编指令、伪指令、宏指令。 • 源语句的格式
[标号][:] 助记符 [操作数1,操作数2,…][;注释]




标号域
助记符域
操作数域
注释域
例:
SYMl
.set 2
;符号SYM1等于2
BEGIN: LDP
1.常数 • 汇编器支持6种类型的常数; ➢ 二进制整数 ➢ 八进制整数 ➢ 十进制整数 ➢ 十六进制整数 ➢ 字符常数 ➢ 汇编时间常数
• 包含在单引号中的一个或两个字 符的串。 • 每个字符表示为8位ASCII码 例:
‘ a ’ 定义字符 a 其值为61H
二、 常数、字符串和符号
1.常数 • 汇编器支持6种类型的常数; ➢ 二进制整数 ➢ 八进制整数 ➢ 十进制整数 ➢ 十六进制整数 ➢ 字符常数 ➢ 汇编时间常数
相关文档
最新文档