3986.net
小网站 大容量 大智慧
相关标签
当前位置:首页 >> IT/计算机 >>

DSP寻址方式与指令系统


DSP Technology

DSP汇编语言指令系统

3.1 寻址方式

当硬件执行指令时,寻找指令所指定的参与
运算的操作数的方法——寻址方式。 根据程序的要求采用不同的寻址方式,可以有 效地缩短程序的运行时间和提高代码执行效率。

DSP技术讲义,2012 陈军波?生物医学工程学院

第3章 TMS320C54x的数据寻址方式
? 1 立即寻址 ? 2 绝对寻址 ? 3 累加器寻址 ? 4 直接寻址 ? 5 间接寻址 ? 6 存储器映象寄存器寻址 ? 7 堆栈寻址

DSP技术讲义,2012 陈军波?生物医学工程学院

寻址方式









指令含义

立即寻址 主要用于初始化

LD #10,A

立即数10 ? A
将AL内容存入y所在的存储单 元 将A的内容作为地址读程序存储 器,并存入x存储单元

绝对寻址 利用16位地址寻址存储单元 STL A,*(y) 累加器寻址 将累加器中的内容作为地址 READA x

直接寻址
间接寻址

利用数据页指针和堆栈指针 LD @x,A 寻址 利用辅助寄存器作为地址指 LD *AR1,A 针

(DP+x的低7位地址) ? A
((AR1)) ? A

存储器映像 快速寻址存储器映象寄存器 LDM ST1,B 寄存器寻址 堆栈寻址

(ST1) ? B
(SP)-1 ? SP,(AG) ? (SP)

压入/弹出数据存储器和存 PSHM AG 储器映像寄存器MMR

DSP技术讲义,2012 陈军波?生物医学工程学院

表3-1 寻址指令中用到的缩写符号及其含义
缩写符号 含义 16位单数据存储器操作数 在双操作数指令及某些单操作数指令中所用的16位双数据存储 器操作数,从DB总线上读出 在双操作数指令中所用的16位双数据存储器操作数,从CB总线 上读出;在读同时并行写的指令中表示写操作数 16位立即数——数据存储器地址(0~65535) 16位立即数——程序存储器地址(0~65535) 16位立即数——I/O口地址(0~65535) 源累加器(A或B) 目的累加器(A或B) 16位长立即数

Smem
Xmem Ymem dmad pmad PA src dst

lk

DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.1 立即寻址
指令中含有执行指令所需的操作数。操作数紧随 操作码存放在程序存储器中。
例如: LD #F180,A
;将立即数F180加载到A
程序存储器 立即数的数值形式: ① 短立即数。3、5、8、9位,单字指令; 操作码 ② 长立即数。16位,双字指令。

特点:指令中含有一个固定的立即数,运行速度 较快,但需占用程序存储空间,并且数值不能改变。

立即数F180

用途:用于表示常数或对寄存器初始化。
DSP技术讲义,2012 陈军波?生物医学工程学院

支持立即数的指令
3位 立即数 LD 5位 立即数 LD 8位 立即数 FRAME LD RPT 9位 立即数 LD ADD ANDM LD ORM ST XOR 16位 立即数 ADDM BITF MAC RPT STM XORM AND CMPM OR RPTZ SUB

注意:在立即寻址的指令中,应在数值或符号前面加 一个“#”,表示是一个立即数,以区别于地址 。
DSP技术讲义,2012 陈军波?生物医学工程学院

返回

3.1.2 绝对寻址
指令中含有所要寻找的操作数的16位存储单元 地址。 16位地址表示形式: ① 地址标号,如:TABLE; ② 16位符号常量,如:89AB、1234。 特点:指令中包含一个固定的16位地址,能寻 例如: MVKD址所有数据存储空间,但运行速度慢, TABLE,*AR1;将DATA指定的数据存储单元 ;将数据存储器TABLE为地址 LD *(DATA),A 需要较大的存储空间。 中的数据送入累加器A中 的单元数据送入AR1寄存器
指定的数据存储单元中
DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.2 绝对寻址
绝对寻址是利用16位地址来寻址操作数的存储 单元。由于绝对地址代码的位数为16位,所以绝对 地址寻址的指令至少应为2个字长。 绝对寻址有四种类型 : ① 数据存储器地址(dmad)寻址; ② 程序存储器地址(pmad)寻址; ③ 端口(PA)寻址;

④ *(1k)寻址。
DSP技术讲义,2012 陈军波?生物医学工程学院

1.数据存储器地址寻址 用于确定操作数存于数据存储单元的地址。 语法:使用一个程序标号或一个数字来指定数

据空间的一个地址。
例如,将数据存储器EXAM1地址单元中的数据复

制到AR5寄存器所指向的数据存储单元中。
MVKD EXAM1, * AR5
数据存储器的 16位地址dmad值
DSP技术讲义,2012 陈军波?生物医学工程学院

1 数据存储器(dmad)寻址
? 使用数据存储器寻址的指令有: MVDK Smem, dmad MVKD dmad, Smem

MVDM dmad, MMR
MVMD MMR, dmad

? 数据存储器寻址使用符号(符号地址)或一个表 示16位地址的立即数来指明寻址的数据存储单元 的16位绝对地址。
DSP技术讲义,2012 陈军波?生物医学工程学院

2.程序存储器地址寻址 用于确定程序存储器中的一个地址。 语法:使用一个符号或具体的数字来指定程序

空间的一个地址。
例如,将程序存储器TABLE地址单元中的内容复

制到AR2寄存器所指向的数据存储单元中。
MVPD TABLE, * AR2
程序存储器的 16位地址pmad值
DSP技术讲义,2012 陈军波?生物医学工程学院

2 程序存储器(pmad)寻址
? 使用程序存储器寻址的指令有:

FIRS Xmem, Ymem, pmad
MACD Smem, pmad, src

MACP Smem, pmad, src
MVDP Smem, pmad MVPD pmad, Smem ? 程序存储器(pmad)寻址使用符号(符号地址) 或一个表示16位地址的立即数来给出程序空间的地 址。
DSP技术讲义,2012 陈军波?生物医学工程学院

3.端口(PA)寻址

用一个符号或一个数字来确定外部I/O端口的
地址。 例如,把一个数从端口为FIFO的I/O口复制到 AR5寄存器所指向的数据存储单元中。 PORTR FIFO, * AR5
I/O端口地址PA

DSP技术讲义,2012 陈军波?生物医学工程学院

3 端口地址(PA)寻址
? 使用端口地址的指令有: PORTR PORTW PA, Smem Smem , PA

? 端口地址(PA)寻址使用一个符号(符号地址) 或一个表示16位地址的立即数来给出外部I/O口地 址。例如: PORTR FIFO ,*AR5;

DSP技术讲义,2012 陈军波?生物医学工程学院

4. *(lk)寻址 使用一个指定数据空间的地址来确定数据存 储器中的一个地址。

返回

语法:允许所有使用单数据存储器(Smem)寻址 的指令去访问数据空间的任意单元,而 不改变DP的值,也不用对AR进行初始化。 例如,把地址为PN的数据单元中的数据装到累 加器A中。 LD *(PN), A
注意:*(1k)寻址的指令不能与循环指令(RPT,RPTZ)一起使用。 这种寻址可用于支持单数据存储器操作数的指令。
DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.3 累加器寻址

返回

将累加器的内容作为地址去访问程序存储单元, 即将累加器中的内容作为地址,用来对存放数据的程 序存储器寻址。 例如: 用途:用于完成程序存储空间与数据存储空间 READA Smem ;将A中的数据作为地址寻址程序 之间的数据传输。 注意:

③ WRITA Smem ① 只能使用累加器A寻址程序空间。 ② 大多数’C54x用A的低16位作为程序存储器 上述两条指令重复使用时,累加器A自动增 ;将Smem指定的数据存储单元中的 的地址,而’C548和’C549是以A的低23位作为程 减;④ 累加器A用来寻址程序空间。Smem用来寻址 数据,写入A所指定的程序存储 序存储器地址,’C5402是以A的低20位作为程序存 单元。 数据空间。 储器地址;
DSP技术讲义,2012 陈军波?生物医学工程学院

存储器中的数据,并将数据送 入Smem指定的数据存储单元。

3.1.4 直接寻址
利用数据指针DP和堆栈指针SP寻址。 指令格式:
15 ~ 8 操 作 码 7 I=0 6~0 数据存储器地址(dmad)

特点:① 指令中只含有数据存储器的低7位地 指令的标识符 数据存储器地址 址(偏移地址dmad); 指令的8位操作码 包含了数据存储器偏移地址 表示指令为直接寻址 ② 16位数据存储器地址由基地址(数据 页指针DP或堆栈指针SP)和偏移地址 (dmad)共同构成。
DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.4 直接寻址
所要寻址的数据存储器16位地址是由基地址和 偏移地址构成。

基地址: ① 数据页指针DP(9位); ② 堆栈指针SP。
当CPL=0时,数据存储器16位地址由DP和偏 移地址dmad构成; 当CPL=1时,数据存储器16位地址由SP加偏移 地址dmad构成。
DSP技术讲义,2012 陈军波?生物医学工程学院

地址形成过程:

当CPL=0时,
直接寻址 指 令
15~8 7 6~0

操作码

I=0

dmad

页指针DP (位于ST0中)

9位数据页指针DP

16位数据 存储器地址

9位数据页指针DP

dmad

高9位
DSP技术讲义,2012 陈军波?生物医学工程学院

低7位

地址形成过程:

当CPL=1时,
直接寻址 指 令
15~8 7 6~0

操作码

I=0

dmad

堆栈指针SP

16位堆栈指针SP

SP+dmad
16位数据 存储器地址 16位SP+dmad 高9位
DSP技术讲义,2012 陈军波?生物医学工程学院

dmad

低7位

3.1.4 直接寻址
DP地址的范围是从0~511(29-1),将存储器分成 512页。 7位dmad范围是从0~127,每页有128个可以访 问的单元。 以DP为基准的直接寻址是由DP值确定是512页中 的哪一页,由dmad确定是该页中的哪一个单元。 SP可以指向存储器中的任意一个地址。dmad可 以指向当前页中具体的单元,从而允许访问存储器 任意基地址中的连续的128个单元
DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.4 直接寻址 直接寻址标识: ① 变量前加@,如@x;

② 在偏移量前加@,如@5。
利用直接寻址可以在不改变DP或SP的情况下,

随机寻址128个存储单元中的任何一个单元。
直接寻址的优点:每条指令只需要一个字。

DSP技术讲义,2012 陈军波?生物医学工程学院

例1:数据存储器存储数据如图所示,采用数据页指针

DP直接寻址,完成x,y单元的两个数据求和。
数据存储器 地址 数据

第 3 页

0180 0001 0180 0001 . . . 01FF X: 01FF y: 0200 . . . . . . 1000 1000 0500 . . .

结果 RSBX CPL DP RSBX CPL ;CPL复位 1500dma 0000 A 00 DP dma 0 0000 0011 111 1111 LD #3,DP 0 0000 0011 111 1111 LD #3,DP ;立即数3赋给DP000 0000 A @x A 1500 LD @x,A 00 0000 1000 0 1@x FF LD @x,A ;x单元的数据送入A1111 机器码0000 1000 111 1111 0 操作码 @x00 0000 0011 0 111 1 F F 00 0000 1001 0

第 4 页

dma 结果 LD #4,DP 0 0000 0100#4,DP 00001001 ADD @y,A LD 0500 0200H + 0000+ 000 @y A ADD @y,A ;完成x和y单元的数0000 机器码00操作码 0 000 @y 0 0000 0011 1001 DP

ADD @y,A

据相加 00 0000

0180H

0001

1500 0200H 0500

1800 @y

0200

DSP技术讲义,2012 陈军波?生物医学工程学院

例2:数据存储器存储数据如图所示,利用堆栈指针SP直 接寻址,求堆栈中距栈顶两个数x,y的和。

数据存储器

SP→ x: y:

SSBX

执行结果 SP 0000 0010 CPL ;CPL置位 0000

0020 0100 0100

0050 0050
A000
. . .

LD

1 2

@1,A ;x单元的数据送入A
+
dmay X地址

0000 0200H A 00 0000 0150 dmax0150 000 A 00 0000 0100 0001 @1=0201H 000 0010 0202H 0050 @2=0202H
y地址 0 2 0 2

020 ;完成x和y单元的数1 ADD @2,A 00 0000 0150

据相加

DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.4 直接寻址 直接寻址特点:

① 所寻址数据存储器的16位地址是由DP或SP 与7位偏移地址dmad构成; ② 可在单周期寻址128个单元; ③ 寻址速度快,能进行流水线并行操作。 用途:主要用于要求运算速度较快的场合。 注意:① 上述两种直接寻址方式是相互排斥的; ② 采用DP寻址时,要注意数据所在的页面 返回 指针。
DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.5 间接寻址
是根据辅助寄存器(AR0~AR7)给出的16位地址进 行寻址。

每一个辅助寄存器都可以用来寻址64K字数据存
储空间中任何一个单元。

两个辅助寄存器算术运算单元(ARAU0和ARAU1)
可以根据辅助寄存器的内容进行操作,完成16位无符

号数算术运算。

DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.5 间接寻址 可完成以下操作: ① 用单指令对存储器进行16位数据的读操作 或写操作;

② 用单指令可以完成对两个独立的数据存储 单元的读操作;
③ 用单指令可以读和写两个连续的数据存储 单元; ④ 用单指令可以在读一个数据存储单元的同 时,向另一个存储单元进行写操作。
DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.5 间接寻址 1. 单操作数寻址 用来完成存储单元中16位单数据的读写操作。
指令的标识符 表示指令为间接寻址 指令格式:
15 ~ 8 7

3位辅助寄存器域 用来定义所使用的辅助寄存器
6~3 2~0

操作码

I=1

MOD

ARF

指令的8位操作码

4位的方式域 用来定义间接寻址的类型

DSP技术讲义,2012 陈军波?生物医学工程学院

第3章 DSP汇编语言指令系统 单操作数间接寻址形式
MOD域 操作句法 0000 0001 0010 0011 * ARx * ARx* ARx+ * +ARx 功 能 说 明 地址=ARx 地址=ARx ARx=ARx-1 地址=ARx ARx=ARx+1 ARx=ARx+1 地址=ARx ARx的内容为数据存储器地址 寻址结束后,ARx地址减1 。[注2] 寻址结束后,ARx地址加1。 [注1] ARx中的地址加1后,再寻址。 [注1] 、[注2]、[注3]

0100

地址=ARx 寻址结束后,用位倒序进位的方法从 * ARx-0B ARx=B(ARx-AR0) ARx中减去AR0的值。

[注1]:寻址16位字时增/减量为1,32位字时增/减量为2。 [注2]:这种方式只能用写操作指令。 [注3]:这种方式不允许对存储器映像寄存器寻址。

第3章 DSP汇编语言指令系统

单操作数间接寻址形式
MOD域 0101 0110 0111 1000 1001 操作句法 * ARx-0 * ARx+0 * ARx+0B * ARx-% * ARx-0% 功 能 说 明 地址=ARx ARx=ARx-AR0 地址 = ARx ARx=ARx+AR0 寻址结束后,从ARx中减去AR0 的值。 寻址结束后,把AR0加到ARx 中。 寻址结束后,用位倒序进位 的方法将 AR0加到ARx中 寻址结束后,ARx中的地址值 按循环减的方法减1。[注1]

地址=ARx ARx=B(ARx+AR0) 地址=ARx ARx=Circ(ARx-1) 地址=ARx 寻址结束后,按循环减的方法 ARx=Circ(ARx-AR0) 从ARx中减去AR0中的值

[注1]:寻址16位字时增/减量为1,32位字时增/减量为2。

第3章 DSP汇编语言指令系统 单操作数间接寻址形式
MOD域
1010 1011

操作句法
* ARx+% * ARx+0%









1100
1101

* ARx(lk)
* +ARx(lk)

1110
1111

* ARx(lk)%
* (lk)

地址=ARx ARx=Circ(ARx+1) 地址=ARx ARx=Circ(ARx+AR0) 地址=ARx+lk ARx=ARx 地址=ARx+lk ARx=ARx+lk 地址=Circ(ARx+lk) ARx=Circ(ARx+lk) 地址=(lk)

寻址结束后,ARx中的地址值 按循环加的方法加1。[注1] 寻址结束后,按循环加的方法 将AR0中的值加到ARx。 以ARx与16位数之和作为地址, 寻址结束后,ARx中的值不变。 将一个16位带符号数加到ARx, 然后寻址。[注3] 将一个16位带符号数按循环加 的方法加至ARx,然后再寻址 利用16位无符号数作为地址, 寻址数据存储器

[注3]:这种方式不允许对存储器映像寄存器寻址。

3. 1. 5 单操作数寻址
1. 单操作数寻址 特殊的间接寻址功能: (1) 循环寻址 在存储器中设置一个缓冲区作为滑动窗,来保 存最新的一批数据,并用新的数据覆盖旧的数据, 实现循环寻址。

循环缓冲区的长度R,由循环缓冲区长度寄存器 BK确定,可通过指令设定。 其指令: STM #1K,BK
;将立即数1K存放BK中
DSP技术讲义,2012 陈军波?生物医学工程学院

(1) 循环寻址

长度为R的缓冲区必须从N位地址的边界开始,
即循环缓冲区基地址的N个最低有效位必须为0。 N应满足: 2N>R的最小整数 例如:缓冲区长度R=32, 若2N>32, 则N=6。 缓冲区开始的地址:xxxx xxxx xx00 0000B

缓冲区长度R=32装入循环缓冲长度寄存器BK中。
循环寻址是以BK的值为模,对缓冲区长度R进行

取模运算。
DSP技术讲义,2012 陈军波?生物医学工程学院

循环缓冲器的主要参数

循环寻址通常是指定一个辅助寄存器ARx指向循 环缓冲区; 循环缓冲区的有效基地址(EFB):缓冲区的起始地
址,用户指定的辅助寄存器(ARx)的低N位置0后所得到的值;

循环缓冲区的尾基地址(EOB):通过用BK的低N 代替ARx的低N位得到; 循环缓冲区的偏移量(index):当前ARx的低N位; 循环寻址的步长(step):一次加到辅助寄存器 ARx或从辅助寄存器ARx中减去的值。
DSP技术讲义,2012 陈军波?生物医学工程学院

(1) 循环寻址
循环寻址的算法:
If 0 ? 偏移量+步长 < BK; 偏移量=偏移量+步长; Else if 偏移量+步长 ? BK; 偏移量=偏移量+步长-BK; Else if 偏移量+步长 < 0; 偏移量=偏移量+步长+BK; 注意:① 步长小于BK,其大小与所用指令有关; ③ 若步长为正,进行循环加寻址;否则 ② 若BK=0,则为不作修正的辅助寄存器间

接寻址。 进行循环减寻址;
DSP技术讲义,2012 陈军波?生物医学工程学院

(1) 循环寻址

循环寻址操作过程:
① 首先要指定一个ARx指向循环缓冲区,根据

ARx的低N位作为循环缓冲区的偏移量进行规定的寻
址操作。

② 寻址完成后,再根据循环寻址算法修正偏
移量,并返回ARx的低N位。

DSP技术讲义,2012 陈军波?生物医学工程学院

举例: LD *+AR1(8)%,A; STL A, *+AR1(8)%;

假定:BK=10,N=4,AR1=100H
由上可知:index = 0 (因为 AR1的低四位) Step =8(*+AR1(8)%) 执行第一条指令时:index = index + step = 8 (寻址108H单元 ) 执行第二条指令时:index = index+ step= 8+8=16 〉BK; 故:index=index+step-BK=8+8-10=6 →(寻址106H单元)

DSP技术讲义,2012 陈军波?生物医学工程学院

1. 单操作数寻址

(2)位倒序寻址
用于快速傅氏变换算法FFT。 位码顺序寻址:按照二进制递增规律寻址。 如:0000,0001,0010,0011,…,1111。 位码倒序寻址:根据二进制递增码,按其位

码倒序的规律进行寻址。
如:0000,1000,0100,1100,…,1111。
DSP技术讲义,2012 陈军波?生物医学工程学院

(2)位倒序寻址
位码顺序和倒序对照表
序号
位码顺序 寻 址 位码倒序 寻 址 位码顺序 寻 址 位码倒序 寻 址

序号

0 1 2 3 4 5 6

0000 0001 0010 0011 0100 0101 0110

0000 1000 0100 1100 0010 1010 0110

8 9 10 11 12 13 14

1000 1001 1010 1011 1100 1101 1110

0001 1001 0101 1101 0011 1011 0111

7

0111

1110

15

1111

1111

DSP技术讲义,2012 陈军波?生物医学工程学院

(2)位倒序寻址

实现方法:
① 设AR2=01100000,作为基地址,指向X(0) 的存储单元。 ② 设AR0=00001000,取FFT长度的一半。

程序: RPT #15 ;重复执行下条指令16次 PORTW *AR2+0B,PA ;采用位码倒序的间接寻
址,向PA口输出数据
DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.5 间接寻址
2. 双操作数寻址 用于完成执行2次读操作或者1次读和1次的并行 存储操作(用‖表示)。这些指令代码都是1个字长, 而且只能以间接寻址方式进行操作。 两个数据存储器操作数由Xmem和Ymem表示。

Xmem:读操作数;
在两次读操作的指令中,表示一个读操作数;

Ymem:
在一次读和一次写的指令中,表示写操作数。
DSP技术讲义,2012 陈军波?生物医学工程学院

2. 双操作数寻址

用于完成执行2次读操作或者1次读和1次的并行 存储操作。这些指令代码都是1个字长,而且只能以 间接寻址方式进行操作。
用来定义Xmem操作数 间接寻址方式的类型 指令格式:
15 ~ 8 7 6 5

用来定义Ymem操作数 间接寻址方式的类型
4 3 2 1

0

操 作 码

Xmod

Xar

Ymod

Yar

指令的8位操作码

用来定义存储Xmem 地址的辅助寄存器
DSP技术讲义,2012 陈军波?生物医学工程学院

用来定义存储Ymem 地址的辅助寄存器

2. 双操作数寻址
双操作数间接寻址的类型
Xmod、Ymod 0 0 操作码语法 * ARx 功 地址=ARx 地址=ARx ARx=ARx-1 地址=ARx ARx=ARx+1 能 说 明

ARx中的内容是数 据存储器地址 寻址后,ARx的地 址减1 寻址后,ARx的地 址加1

0
1

1
0

* ARx* ARx+

1

1

* ARx+0%

地址=ARx
ARx=circ(ARx+AR0)

寻址后,AR0以循 环寻址方式加到 ARx中去

DSP技术讲义,2012 陈军波?生物医学工程学院

2. 双操作数寻址

在指令中,由于只有2位可以用于选择辅助寄存
器,所以根据Xar或Yar的值可以选择4个寄存器。
Xar和Yar域选择的辅助寄存器 Xar、Yar 0 0 1 1 0 1 0 1 辅助寄存器 AR2 AR3 AR4 AR5

DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.5 间接寻址

间接寻址特点:通过辅助寄存器和辅助寄存器
指针来寻址数据空间存储单元,并自动实现增量、

减量、变址寻址、循环寻址,共有16种修正地址的
方式。

用途:用于需要按固定步长寻址的场合。

返回
DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.6 存储器映像寄存器寻址

是一种不考虑DP和SP为何值,以0为基地址来访
问MMR的寻址方式。

主要用于修改存储器映像寄存器的内容。
1.采用直接寻址方式 高9位数据存储器地址置0,利用指令中的低7 位地址直接访问MMR。 2.采用间接寻址方式 高9位数据存储器地址置0,按照当前辅助寄存 器ARx的低7位地址访问MMR。
DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.6 存储器映像寄存器寻址 ’C54x共有8条指令可以进行MMR寻址。 LDM MMR,dst ;将MMR加载到累加器 MVDM dmad,MMR ;数据存储器向MMR传送数据 MVMD MMR,dmad ;MMR向指定地址传送数据 MVMM MMRx,MMRy ;MMRx向MMRy传送数据 POPM MMR ;将数据从栈顶弹至MMR PSHM MMR ;将MMR数据压入堆栈 STLM src,MMR ;累加器低位存入MMR STM #lk,MMR ;长立即数lk存入MMR
DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.6 存储器映像寄存器寻址 MMR寻址特点: ① 寻址速度快,对MMR执行写操作开销小; ② 可直接利用MMR的名称快速访问数据存储 空间的0页资源; ③ 只能寻址数据空间的0页单元。 用 途 : 主 要 用 于 不 改 变 DP、SP的 情 况 下 , 修 改 MMR中的内容。
返回
DSP技术讲义,2012 陈军波?生物医学工程学院

3.1.7 堆栈寻址 堆栈:当发生中断或子程序调用时,用来自动 保存PC内容以及保护现场或传送参数。 ’C54x的堆栈是向低地址生长,并由16位堆栈

指针SP管理。SP总是指向栈顶。
堆栈寻址:利用SP指针,按照先进后出的原则进 行寻址。 当进栈操作时,SP先减小,然后数据进入堆栈; 当出栈操作时,数据先出栈,然后SP增加。
DSP技术讲义,2012 陈军波?生物医学工程学院

进栈操作时,SP先减小,然后数据进入堆栈; 出栈操作时,数据先出栈,然后SP增加。
数据存储器

① SP?SP-1,使SP指向03FEH; ① SP=03FEH,数据出栈; ② ② SP?SP+1,使SP指向03FFH。 数据进栈,SP=03FEH。

03FEH
03FFH

13FF
1234 5678

?SP
?SP ?SP

XXXX 13FF

smem

DSP技术讲义,2012 陈军波?生物医学工程学院

采用堆栈寻址的指令:
PSHD PSHM POPD Smem MMR Smem ;将Smem中的数据压入堆栈 ;将MMR中的数据压入堆栈 ;将数据从栈顶弹至Smem中

POPM

MMR

;将数据从栈顶弹至MMR中

返回
DSP技术讲义,2012 陈军波?生物医学工程学院

3.2 C54x系列DSP指令系统
TMS320C54X共有129条指令 按功能分为4大类(每大类又分为若干小类) :

?存储和装入指令;
?算术运算指令; ?逻辑运算指令; ?程序控制指令。 * 指令书写方式:助记符/表达式

DSP技术讲义,2012 陈军波?生物医学工程学院

3.2 C54x系列DSP指令系统
1. 存储和装入指令( 8小类)
(1)存储指令(ST); (14条)〈表3-7 〉注:R→M

(2)条件存储指令(CMPS);(4条)〈表3-7 〉注:比较/选择/存储或满足条件存


(3)装入指令(LD) ; (21条) 〈表3-7 〉注:M→R /助记符‘LD’ (4)并行指令(9条) 〈表3-25 〉 ? 并行装入和存储指令(ST||LD); (2条) ? 并行装入和乘法指令(LD||MAC); (4条) ? 并行存储和加减指令(ST ||ADD,ST ||SUB); (2条) ? 并行存储和乘法指令(ST||MAC); (5条) (5)其他装入和存储指令(MVDD,PORTW,READA) (12条)〈表3-7 〉 //
DSP技术讲义,2012 陈军波?生物医学工程学院

2. 算术运算指令(79条分为6小类)
? 加法指令(ADD);

? 减法指令(SUB);
? 乘法指令(MPY); ? 乘加指令(MAC)和乘减指令(MAS); ? 双数/双精度指令(DADD、DSUB); ? 特殊操作指令(ABDST、SQDST)。

DSP技术讲义,2012 陈军波?生物医学工程学院

3.2 C54x系列DSP指令系统
(1) 加法指令(13条)《表3-6》
说明:① 不同的加法指令用途不同;

ADD:不带进位;
ADDC:带进位; ADDM:专用于立即数; ADDS:无符号数; ② 小数表示:通常安排在最高位后。

DSP技术讲义,2012 陈军波?生物医学工程学院

3.2 C54x系列DSP指令系统
加法指令举例
【例3.1】 ADD *AR3+, 14, A;将AR3所指的数据存储单元内容,左移14位与A相
加,结果放A中,AR3加1。
操作前 A B AR3 SXM Data Memory 0100h 1500 0100h 1500 00 0000 1200 1 0100 1 A B AR3 SXM 操作后 00 0540 1200 1 0101 1

DSP技术讲义,2012 陈军波?生物医学工程学院

3.2 C54x系列DSP指令系统 (2) 减法指令(13条)《表3-7》
说明:①SUBS用于无符号数的减法运算;

SUBB用于带借位的减法运算(如32位扩展精度的减法);
SUBC为条件减法 . ②使用SUBC重复16次减法,就可以完成除法功能。 被除数-(除数<<15):够减:被除数左移,商+1; 不够减:被除数左移,商+0;

注:被除数和商共用一个R → B:随着B的左移被除数逐渐 退出,商从右→左逐渐进入。
DSP技术讲义,2012 陈军波?生物医学工程学院

3.2 C54x系列DSP指令系统
减法指令举例
【例3.2】利用SUBC完成整数除法(TEMP1/TEMP2)

LD TEMP1, B
RPT #15 SUBC TEMP2, B STL B, TEMP3 STH B, TEMP4

;将被除数TEMP1装入B累加器的低16位
;重复SUBC指令16次 ;使用SUBC指令完成除法 ;将商(B累加器的低16位)存入变量TEMP3 ;将余数(B累加器的高16位)存入变量TEMP4

DSP技术讲义,2012 陈军波?生物医学工程学院

(3) 乘法指令(10条)《表3-8》
说明: ① 不同的乘法指令完成不同的功能 MPY:普通乘指令; MPYR:带四舍五入指令;

MPYA: A累加器高端参与乘法;
MPYU:无符号乘法; SQUR:平方; ② 小数乘法 将FRCT设置为1,系统自动将乘积结果左移1位。
DSP技术讲义,2012 陈军波?生物医学工程学院

3.2 C54x系列DSP指令系统
乘法指令举例
【例3.2】 MPY 13,A; T*Smem →A, Smem所在的单数据存储器地址为 13(0Dh)
操作前 A T FRCT 000000 0036 0003 1 A T FRCT 操作后 000000 0018 0003 1

Data Memory 000Dh 0008 000Dh 0008

DSP技术讲义,2012 陈军波?生物医学工程学院

3.2 C54x系列DSP指令系统
(4) 乘加和乘减指令(15条)《表3-9》
【例3.3】 MAC *AR5+,A
操作前 A T FRCT AR5 Data Memory 0100h 1234 0100h 1234 00 0000 1000 0400 0 0100 A T FRCT AR5

;A+(AR5)*T→A, AR5= AR5+1
操作后 00 0048 E000 0400 0 0101

DSP技术讲义,2012 陈军波?生物医学工程学院

3.2 C54x系列DSP指令系统
(5)长操作数指令(6条)《表3-10》
【例3.4】 DADD *AR3+, A, B
操作前 A B C16 AR3 Data Memory 0100h 0101h 1534 3456 0100h 0101h 1534 3456 00 5678 8933 00 000 000 0 0100 A B C16 AR3

;If C16=0 dst= Lmem + src (长字运算:AR3+2)
操作后 00 5678 8933 00 6BAC BD89 0 0102

DSP技术讲义,2012 陈军波?生物医学工程学院

3.2 C54x系列DSP指令系统
(6)特殊应用指令(15条)《表3-11》
? 求绝对值

? 求累加器指数
? 求累加器的最大/小值 ? 归一化 ? 求多项式的值 ? 求两点之间距离的平方

? 求最小均方值
? 对称有限冲击响应滤波器等
DSP技术讲义,2012 陈军波?生物医学工程学院

说明:FIRS Xmem,Ymem, pmad; B=B+A*pmad +Xmem)<<16

/ A=(Ymem

? FIRS指令实现一个对称的有限冲激响应(FIR)滤波器。 ?累加器A的高端(32~16位)和由pmad寻址得到的Pmem相乘,乘 法结果与累加器B相加并存放在累加器B中。 ? Xmem和Ymem相加后的结果左移16位放入累加器A中。在下一 个循环中,pmad加1。 ?一 旦循 环 流 水线启 动 , 指令成 为 单 周期指 令 。 指令受 OVM, FRCT和SXM状态标志位的影响,执行结果影响C、OVC和OVB。

DSP技术讲义,2012 陈军波?生物医学工程学院

3.2 C54x系列DSP指令系统
【例3.5】 FIRS *AR3+,*AR4+,COEFFS
操作前 A B FRCT AR3 AR4 Data Memory 0100h 0200h Program Memory COEFFS 1234 COEFFS 1234 0055 00AA 0100h 0200h 0055 00AA 00 0077 0000 00 0000 0000 0 0100 0200 A B FRCT AR3 AR4 操作后 00 00FF 0000 00 0008 762C 0 0101 0201

DSP技术讲义,2012 陈军波?生物医学工程学院

3.2 C54x系列DSP指令系统
3. 逻辑指令(5小类)
? 与指令(AND);

? 或指令(OR);
? 异或指令(XOR); ? 移位指令(ROL);

? 测试指令(BITF)。
(1) 与、或、异或指令(共15条)《表3-12》 (2) 移位指令和测试指令(共11条)《表3-13》

DSP技术讲义,2012 陈军波?生物医学工程学院

【例3.8】 CMPM *AR4+, #0404h; 比较Smem与常数1k是否相 等,若相等TC=1,否则TC=0。
操作前 TC AR4 Data Memory 0100h 4444 0100h 4444 1 0100 TC AR4 操作后 0 0101

DSP技术讲义,2012 陈军波?生物医学工程学院

4. 程序控制指令(7小类)
? 分支指令(B,BC);

? 调用指令(CALL);
? 返回指令(RET); ? 中断指令(INTR,TRAP);

? 重复指令(RPT);
? 堆栈操作指令(FRAME,POP); ? 其他程序控制指令(IDLE,NOP)。

DSP技术讲义,2012 陈军波?生物医学工程学院

(1) 分支指令(6条)《表3-14》
【例3.9】 BANZ[D] pmad,Sind
若当前辅助寄存器ARx不为0,则pmad值赋给PC,否则PC值加2。 若为延迟方式,此时紧跟该指令的两条单字指令或一条双字指令先被取出执行 ,然后程序再跳转。该指令不能被循环执行。 如: BANZ 2000h, *AR3-
操作前 PC AR3 1000 0005 PC AR3 操作后 2000 0004

DSP技术讲义,2012 陈军波?生物医学工程学院

(2)调用和返回指令(6条)《表3-15》
【例3.10】 CALL[D] pmad 返回地址压入栈顶(TOS)保存,无延时时返回地址为PC+2,有延时时 返回地址为PC+4(延时2字); 将pmad值赋给PC实现调用。

如:CALL 3333h
PC SP Data Memory 1110h

操作前 0025 1111 PC SP

操作后 3333 1110

4567

1110h

0027

DSP技术讲义,2012 陈军波?生物医学工程学院

(3)重复指令(5条)《表3-16》
【例3.12】 RPTB[D] pmad; 块循环指令。
循环次数必须在指令执行前装入BRC。执行命令时,块循环起始寄存器RSA装入 PC+2(若有D后缀时为PC+4),块循环尾地址寄存器REA中装入pmad。

ST #99,BRC

;循环计数器赋值
操作前 操作后 PC BRC RSA REA 1002 0063 1002 end block-1

RPTB end_block-1 ;end_block 为循环块的底部

PC BRC RSA REA

1000 1234 5678 9ABC

DSP技术讲义,2012 陈军波?生物医学工程学院

(4)中断指令(2条)《表3-17》
【例3.12】 INTR 3;(即K=3)

? 将PC值压入栈顶; ? 由K确定的中断向量赋给PC,执行该中断服务子程序。

? 中断标志寄存器(IFR)对应位清零且INTM=1(禁止可屏蔽中断)。
操作前 PC INTM IPTR SP Data Memory 0FFFh
DSP技术讲义,2012 陈军波?生物医学工程学院

操作后 PC INTM IPTR SP FF8C 1 01FF 0FFF

0025 0 01FF 1000

9653

0FFFh

0026

(5)堆栈操作指令(5条)《表3-18》 (6)其他程序控制指令(7条)《表3-19》

? 保持空闲状态直到有中断产生
? 修改辅助寄存器 ? 无任何操作 ? 软件复位 ? 状态寄存器复位 ? 状态寄存器置位 ? 条件执行
DSP技术讲义,2012 陈军波?生物医学工程学院

3.2.1 一维傅立叶变换
3. 快速傅立叶变换流程图
x(0) x(1) x(2) x(3) f(x) x1(0) x1(1) x1(2)w0 x1(3)
-1 w0 -1 -1

基2、时间抽取算法,N=8
x2(0) x3(0)
-1

x4(0)

x2(1)
x2(2) x2(3) x2(4)

w0

x3(1)
x3(2)

x4(1)
x4(2) x4(3) x4(4) x4(5) F(u)

w2

-1

x3(3) x3(4)

x(4)
w0

x1(4)

x(5)
w0 w0 w0

-1
-1 -1

x1(5)
x1(6) w2 x1(7)
w2 -1 -1

x2(5) 1
w

-1

x3(5) x3(6)

x(6)

x2(6) x2(7)
w3 -1

x4(6)
x4(7)

x(7)

x3(7)

75

数字图像处理讲义,陈军波?中南民族大学 2009年春,

5. FFT举例
f(x) 0 0 1 0

f ( x) ? ?0 0 0 11 0 0 0? , N ? 8, 求F(u)
F(u) 1 1
-1 -1

2
-1

2

0

?1? e

?j

3? 4

0 1
1 0 0
-1
-1 -1 -1

0 1
-1 0 0 w2 1 2
w

1 -1
-1
w2
-1

1? j 1? j
?1? e ?1? e

1? j
?1? e
0
?j

?
4

3? ?j 4 ?j 3? 4

?j
-1 -1

w1

-1

-1

?1? e
w3
-1

? ?j 4
?j

?1? e

?j

3? 4

0

j

?1? e
? j

?
4

1? j
?1? e
?j

?
4

w0 ? 1

其中:
w ?e
1

? j

?
4

w w
76

2

?e ?e

?
2 3? 4

? ?j

3

? j

数字图像处理讲义,陈军波?中南民族大学 2009年春,


推荐相关:

DSP的指令系统

DSP指令系统_计算机软件及应用_IT/计算机_专业资料。TI 公司三大系列 DSP 的...共有129条基本指令,由于操作数的寻址方式不 同,由它们可以派生多至205条指令。...


DSPC2000汇编指令

在本章节当中将主要以基于 C28x 的 DSP 芯片为例,为读者讲解 DSP寻址方式和汇 编指令系统,其中大部分内容也可适用于其他 Ti 公司的 DSP 产品。 6.1 汇编...


TI公司三大系列DSP芯片指令系统比较

TI公司三大系列DSP芯片指令系统比较_计算机硬件及网络_IT/计算机_专业资料。TI 公司三大系列 DSP 芯片指令系统比较摘要: DSP 技术已成为目前电子工业领域...


3 DSP原理与应用教案 指令系统

DSP 原理与应用》教案(3)教学课时:6 学时 三、TMS320LF240x 寻址方式和指令系统 3.1 寻址方式 TMS320LF240x 指令集采用 3 种基本的存储器寻址方式:立即寻...


DSP复习题汇总答案版

15、在数字信号处理器寻址指令系统中,Dmad 为 16 位立即数,表示(数据存储器...X DSP 芯片采用了 6 级流水线的工作方式。√ DSP寻址方式有 7 种,累加...


《DSP原理及应用》教学大纲-测控技术与仪器

难点:间接寻址方式,命令控制文件的编写。 4.DSP 开发系统 教学内容:开发流程和开发工具、软件开发工具和软件仿真器、软件开发平台 CCS 的使用、硬 件开发工具、XDS...


第四章 指令系统及编程方法

DSP 应用系统设计讲义 第四章 指令系统及编程方法一、 寻址方式 1. 立即寻址方式 .指令中包含了指令所需的一个常数, 分为短立即寻址和长立即寻址两 类。 例 ...


DSP技术及应用复习题

6. ’C54x DSP 的寻址方式有七种,分别为立即寻址、绝对寻址、累加器寻址、 ...7. 在’C54x DSP 寻址和指令系统中,Xmem 和 Ymem 表示 数,Dmad 为 16 ...


DSP技术及应用试卷及答案

6. ’C54x DSP 的寻址方式有七种,分别为立即寻址、绝对寻址、累加器寻址、 ...7. 在’C54x DSP 寻址和指令系统中,Xmem 和 Ymem 表示 16 位双寻址操作 ...


DSP三大系列芯片的寻址方式简述

DSP三大系列芯片的寻址方式简述_计算机硬件及网络_IT/计算机_专业资料。简述 TMS...69页 1下载券 DSP寻址方式和指令系统(... 222页 4下载券喜欢此文档的还喜欢...

网站首页 | 网站地图
3986 3986.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com