第三章 DSP技术.ppt
DSP芯片内有8个辅助寄存器AR0-AR7和辅助寄存器算术单 元ARAU,这些寄存器专用于间接寻址操作,它可以访问64KB 的寻址空间而不受数据页的限制。因此,DSP的间接寻址能力 非常灵活和强大,而且寻址的速度非常快。
在间接寻址时,当前AR的内容用作将被访问的数据存储 器的地址。因此,当前辅助寄存器中的内容才是真正被访问 的数据地址。
退出
第三章 TMS320LF240x的软件结构 (1)ABS(累加器取绝对值) 语法:ABS 说明:计算ACC的绝对值,进位位C置0。指令受OVM状态标志 位影响,执行的结果影响C和OV。如果ACC的内容大于或等于 0,执行指令后其内容不变;若累加器内容小于0,执行指令 后用其对2的补码数(即它的绝对值)取代原来的值。
增加1
*-
减少1
操作数 *0- *BR0+
*BR0-
选项
减少变址量
按反方进位增加变 址量
按反向进位减少变 址量
*0+
增加变址量
退出
第三章 TMS320LF240x的软件结构 【例7】 当前AR不增不减 ADD *,8 ;把当前AR指定的数据存储单元的内容左移8位
;后加至累加器中
【例8】 当前AR增加1 ADD *+,8,AR4 ;把当前AR指定的数据存储单元的内容左
【例3-17 】 ADD 1,1 ;DP=6:地址0300h-037Fh
数据存储器 301h
ACC × C
执行指令前 1h 2h
数据存储器 301h
ACC 0 C
执行指令后 1h 4h
退出
第三章 TMS320LF240x的软件结构 【例3-18 】 ADD *+,0,AR0
;移8位后加至累加器中,当前AR内容加1, ;指定下条指令的当前辅助寄存器为AR4 【例9】 当前AR减去1 ADD *-,8 ;把当前AR指定的数据存储单元的内容左移8 ;位后加至累加器中,当前AR内容减1
退出
第三章 TMS320LF240x的软件结构 【例10】 当前AR增加一个变址量 ADD *0+,8 ;把当前AR指定的数据存储单元的内容左移8
3.1.1 立即寻址方式
指令操作所需要的数就在本指令中,这个数也称为立 即数。立即寻址的操作数分为短立即数和长立即数,因此 相应的寻址方式也有短立即数寻址和长立即数寻址。
退出
第三章 TMS320LF240x的软件结构
【例1】 采用8位短立即数寻址的RPT指令,需要重复执行的 次数包含在指令操作码后。
;位后加至累加器中,AR0的内容加到当前AR 【例11】 当前AR减去一个变址量 ADD *0-,8 ;把当前AR指定的数据存储单元的内容左移8
;位后加至累加器中,当前AR的内容减去AR0 ;内容
退出
第三章 TMS320LF240x的软件结构
3.2 TMS320LF240x的汇编指令
汇编语言是DSP应用软件的基础,使用汇编语言时必须 要符合规定的格式,只有这样汇编器才能将源文件转换为 机器语言的目标文件。 1.汇编语言源程序的标准格式
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
110
k
RPT 操作代码
13 位常数=k
退出
第三章 TMS320LF240x的软件结构
【例4】 采用16位长立即数寻址的ADD指令。
ADD #1k ,2 ;将立即数1k左移2位后与累加器中
第一字节
;的内容相加,结果存累加器中
如果在一段代码块中所有的指令都访问的是同一数据页, 则只需在该块代码的前面加载一次DP即可;如果代码块中需 要访问不同的数据页,则每当访问新的数据页时需确保加载 相应的DP。
退出
第三章 TMS320LF240x的软件结构 【例5】 采用直接寻址的ADD指令。
LDP #4 ;设置数据页为4(地址0200h-027Fh) ADD 9h,5 ;将数据地址0209h单元的内容左移5位后加至ACC
3.1.2 直接寻址方式
操作地址就在指令中,按照该地址可以直接访问寄存器, 这个地址也称为直接地址。
在DSP程序中,直接寻址通常是将指令中的数据页指针 DP和操作数合并起来作为被访问的地址。每页的具体操作 地址的高9位是由数据页指针DP决定;低7位(又称偏移地址 量)是由指令操作数决定,它处于指令寄存器的最低7位有 效位上。DP指针与偏移地址量共同构成16位的指令操作地 址。
(3)每部分必须由1个或多个空格分开。
(4)开始于第1列的注释须用星号(*)或分号(;)标示,但在 其他列开始的注释前面只能用分号。
(5)指令一定不能从第1列开始,否则将被视为标号。指令 包括助记符指令、汇编伪指令(如.data,.set)、宏伪指 令(如.macro)和宏调用。
(6)操作数可以为列表形式,汇编器允许使用常数、符号 或表达式作为地址、立即数或间接寻址。当操作数为立即 数时,使用#号作为前缀;操作数为间接寻址时,使用*号 作为前缀,将操作数的内容作为地址。
RPT #k
;8位短立即数寻址
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 0 1 1 1 0 11
k
RPT 操作代码
8 位常数=k
退出
第三章 TMS320LF240x的软件结构
【例2】 采用9位短立即数寻址的RPT指令,需要重复执行的 次数包含在指令操作码后。
RPT #k
在进行间接寻址操作的同时可以对当前辅助寄存器中的 内容(即操作地址)进行修改,甚至可以改变ARP的值,为下 一次的间接寻址操作做准备,从而极大地提高了寻址速度。
退出
第三章 TMS320LF240x的软件结构 TMS320LF240x提供了对AR的内容进行四种运算的选择:
操作数
选项
*
不增加也不减少
*+
如果采用间接寻址并更新ARP的值,此时必须指定一 个shift(移位)操作数。如果不希望产生移位,则将0作为 操作数,例如ADD *+,0,AR2。
退出
第三章 TMS320LF240x的软件结构
通常,如果相加的结果产生进位时,C=1;不产生进 位时,C=0。但是,当左移16位进行相加时,如果相加的 结果产生进位,则C=1;不产生进位时,则C不受影响。这 样,在把32位数加到累加器时,可使累加器产生正确的符 号进位。
退出
第三章 TMS320LF240x的软件结构
2.汇编语言的指令集
TMS320LF240x的汇编语言共86条,分为6大类,分别是 累加器、算术和逻辑指令;辅助寄存器和数据页指针指令; TREG、PREG和乘法指令;跳转指令;控制指令;I/O和存储 器操作指令。
3.汇编指令的语法和说明
在介绍汇编指令之前,先把所用到的操作数做一统一规定:
执行指令前
ACC × C
1234 h
0
C
执行指令前
ACC ×
0FFFFFFFFh
0
C
C
【例3-15】 ABS ;(OVM=0)
执行指令前
ACC ×
80000000h
0
C
C
×
1
OV
OV
执行指令后 1234h
执行指令后 1h
执行指令后 80000000h
退出
第三章 TMS320LF240x的软件结构 (2)ADD 累加器加
语法:ADD ADD ADD ADD ADD ADD
dma [,shift]
直接寻址
dma,16
左移16位直接寻址
ind [,shift [,ARn]] 间接寻址
ind,16 [,ARn]
左移16位间接寻址
#k
短立即数寻址
#1k [,shift]
长立即数寻址
说明:被寻址的数据单元的内容或一个立即数左移后加到 累加器,在移位时低位填0。如果SXM=1,则高位进行符号 扩展;如果SXM=0,则高位填0。
高9位来自DP
低7位来自IR
1111 1010 0
000 0110
16位数据存储器地址FA06h
退出
第三章 TMS320LF240x的软件结构
3.1.3 间接寻址方式
指令中给出的操作数既不是立即数也不是直接地址,而 是将这个操作数做地址的内存单元的内容作为访问地址,即 指令中的操作数是一个间接地址。间接寻址为系统的编程带 来了很大的灵活性和方便性。
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
8MSB
0
7LSB
第15~8位为指令的操作码;第7位为直接/间接寻址指示
符,为0是直接寻址;第6~0位为偏移地址量。
退出
第三章 TMS320LF240x的软件结构
因此,在使用直接寻址方式时,应按下述步骤进行:
(1)设置数据页面。将页值加载到DP,加载时可使用LDP指令。
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 0 1 1 1 1 1 11 1 0 1 0 0 1 0
第二字节
ADD 操作代码
移位 2 次
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1k 16 位常数=1k
退出
第三章 TMS320LF240x的软件结构
第三章 TMS320LF240x的软件结构
第三章 TMS320LF240x的软件结构
TMS320LF240x的寻址方式 TMS320LF240x的汇编指令 DSP软件的文件结构 定点DSP芯片的数据定标及运算 非线性函数的处理方法
第三章 TMS320LF240x的软件结构
3.1 TMS320LF240x的寻址方式
LDP #500 ;设置数据页为500(地址FA00h-FA7Fh) ADDC 6h ;数据寄存器地址FA06h单元的内容和进位值(C)