DSP寻址方式与指令系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 1 立即寻址 • 2 绝对寻址 • 3 累加器寻址 • 4 直接寻址 • 5 间接寻址 • 6 存储器映象寄存器寻址 • 7 堆栈寻址
DSP技术讲义,2012 陈军波©生物医学工程学院
寻址方式




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