DSP例程

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