第三章 DSP技术.ppt

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

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