当前位置:文档之家› DSP寻址方式与指令系统

DSP寻址方式与指令系统

• 1 立即寻址 • 2 绝对寻址 • 3 累加器寻址 • 4 直接寻址 • 5 间接寻址 • 6 存储器映象寄存器寻址 • 7 堆栈寻址
DSP技术讲义,2012 陈军波©生物医学工程学院
寻址方式




指令含义
立即寻址 主要用于初始化
LD #10,A
立即数10 A
将AL内容存入y所在的存储单 元 将A的内容作为地址读程序存储 器,并存入x存储单元
Smem
Xmem Ymem dmad pmad PA src dst
lk
DSP技术讲义,2012 陈军波©生物医学工程学院
3.1.1 立即寻址
指令中含有执行指令所需的操作数。操作数紧随 操作码存放在程序存储器中。
例如: LD #F180,A
;将立即数F180加载到A
程序存储器 立即数的数值形式: ① 短立即数。3、5、8、9位,单字指令; 操作码 ② 长立即数。16位,双字指令。
注意:在立即寻址的指令中,应在数值或符号前面加 一个“#”,表示是一个立即数,以区别于地址 。
DSP技术讲义,2012 陈军波©生物医学工程学院
返回
3.1.2 绝对寻址
指令中含有所要寻找的操作数的16位存储单元 地址。 16位地址表示形式: ① 地址标号,如:TABLE; ② 16位符号常量,如:89AB、1234。 特点:指令中包含一个固定的16位地址,能寻 例如: MVKD址所有数据存储空间,但运行速度慢, TABLE,*AR1;将DATA指定的数据存储单元 ;将数据存储器TABLE为地址 LD *(DATA),A 需要较大的存储空间。 中的数据送入累加器A中 的单元数据送入AR1寄存器
4. *(lk)寻址 使用一个指定数据空间的地址来确定数据存 储器中的一个地址。
返回
语法:允许所有使用单数据存储器(Smem)寻址 的指令去访问数据空间的任意单元,而 不改变DP的值,也不用对AR进行初始化。 例如,把地址为PN的数据单元中的数据装到累 加器A中。 LD *(PN), A
注意:*(1k)寻址的指令不能与循环指令(RPT,RPTZ)一起使用。 这种寻址可用于支持单数据存储器操作数的指令。
指定的数据存储单元中
DSP技术讲义,2012 陈军波©生物医学工程学院
3.1.2 绝对寻址
绝对寻址是利用16位地址来寻址操作数的存储 单元。由于绝对地址代码的位数为16位,所以绝对 地址寻址的指令至少应为2个字长。 绝对寻址有四种类型 : ① 数据存储器地址(dmad)寻址; ② 程序存储器地址(pmad)寻址; ③ 端口(PA)寻址;
绝对寻址 利用16位地址寻址存储单元 STL A,*(y) 累加器寻址 将累加器中的内容作为地址 READA x
直接寻址
间接寻址
利用数据页指针和堆栈指针 LD @x,A 寻址 利用辅助寄存器作为地址指 LD *AR1,A 针
(DP+x的低7位地址) A
((AR1)) A
存储器映像 快速寻址存储器映象寄存器 LDM ST1,B 寄存器寻址 堆栈寻址
当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 直接寻址
所要寻址的数据存储器16位地址是由基地址和 偏移地址构成。
基地址: ① 数据页指针DP(9位); ② 堆栈指针SP。
当CPL=0时,数据存储器16位地址由DP和偏 移地址dmad构成; 当CPL=1时,数据存储器16位地址由SP加偏移 地址dmad构成。
DSP技术讲义,2012 陈军波©生物医学工程学院
3.1.3 累加器寻址
返回
将累加器的内容作为地址去访问程序存储单元, 即将累加器中的内容作为地址,用来对存放数据的程 序存储器寻址。 例如: 用途:用于完成程序存储空间与数据存储空间 READA Smem ;将A中的数据作为地址寻址程序 之间的数据传输。 注意:
据相加 00 0000
0180H
0001
1500 0200H 0500
1800 @y
0200
DSP技术讲义,2012 陈军波©生物医学工程学院
例2:数据存储器存储数据如图所示,利用堆栈指针SP直 接寻址,求堆栈中距栈顶两个数x,y的和。
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 陈军波©生物医学工程学院
DSP Technology
DSP汇编语言指令系统
3.1 寻址方式
当硬件执行指令时,寻找指令所指定的参与
运算的操作数的方法——寻址方式。 根据程序的要求采用不同的寻址方式,可以有 效地缩短程序的运行时间和提高代码执行效率。
DSP技术讲义,2012 陈军波©生物医学工程学院
第3章 TMS320C54x的数据寻址方式
④ *(1k)寻址。
DSP技术讲义,2012 陈军波©生物医学工程学院
1.数据存储器地址寻址 用于确定操作数存于数据存储单元的地址。 语法:使用一个程序标号或一个数字来指定数
据空间的一个地址。
例如,将数据存储器EXAM1地址单元中的数据复
制到AR5寄存器所指向的数据存储单元中。
MVKD EXAM1, * AR5
3 端口地址(PA)寻址
• 使用端口地址的指令有: PORTR PORTW PA, Smem Smem , PA
• 端口地址(PA)寻址使用一个符号(符号地址) 或一个表示16位地址的立即数来给出外部I/O口地 址。例如: PORTR FIFO ,*AR5;
DSP技术讲义,2012 陈军波©生物医学工程学院
数据存储器的 16位地址dmad值
DSP技术讲义,2012 陈军波©生物医学工程学院
1 数据存储器(dmad)寻址
• 使用数据存储器寻址的指令有: MVDK Smem, dmad MVKD dmad, Smem
MVDM dmad, MMR
MVMD MMR, dmad
• 数据存储器寻址使用符号(符号地址)或一个表 示16位地址的立即数来指明寻址的数据存储单元 的16位绝对地址。
例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
DSP技术讲义,2012 陈军波©生物医学工程学院
地址形成过程:
当CPL=0时,
直接寻址 指 令
15ad
页指针DP (位于ST0中)
9位数据页指针DP
16位数据 存储器地址
9位数据页指针DP
dmad
高9位
DSP技术讲义,2012 陈军波©生物医学工程学院
低7位
地址形成过程:
特点:指令中含有一个固定的立即数,运行速度 较快,但需占用程序存储空间,并且数值不能改变。
立即数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 陈军波©生物医学工程学院
存储器中的数据,并将数据送 入Smem指定的数据存储单元。
3.1.4 直接寻址
相关主题