DSP寻址方式

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

dmad 低 7位
19
3.1.4 直接寻址
地址形成过程: 地址形成过程:
当CPL=1时, 时
直接寻址 指 令
15~8 7 6~0
操作码
I=0
dmad
堆栈指针SP 堆栈指针SP
16位堆栈指针SP 16位堆栈指针 位堆栈指针SP SP+dmad dmad
16位数据 16位数据 存储器地址
16位SP+dmad 16位 高9位 低7位
2
3.1 寻址方式 寻址方式分为数据寻址和程序寻址两种。 寻址方式分为数据寻址和程序寻址两种。 数据寻址 两种
1 立即寻址 2 绝对寻址 3 累加器寻址 4 直接寻址 5 间接寻址 6 存储器映像寄存器寻址 7 堆栈寻址
3
3.1.1 立即寻址
#1234h, ADD #1234h,A
;将立即数1234h加载到A 将立即数1234h加载到A 1234h加载到
特点:指令中包含一个固定的16位地址, 16位地址 特点:指令中包含一个固定的16位地址, 能寻址任何一个数据存储单元中的操作数, 能寻址任何一个数据存储单元中的操作数,但 运行速度慢并要求较多的存储空间。 运行速度慢并要求较多的存储空间。 用途: 用途:用于对寻址速度无苛刻要求的地方
8
3.1.2 绝对寻址
Xmem Ymem dmad pmad PA src dst 1k
16位双寻址操作数 16 位双寻址操作数 , 用于双操作数或部分单操作数 位双寻址操作数, 指令, DB数据总线上读取 指令,从DB数据总线上读取 16位双寻址操作数 用于双操作数指令, CB数据 位双寻址操作数, 16位双寻址操作数,用于双操作数指令,从CB数据 总线上读取 16位立即数 数据存储器地址( 位立即数: 535) 16位立即数:数据存储器地址(0~65 535) 16位立即数 程序存储器地址( 位立即数: 535) 16位立即数:程序存储器地址(0~65 535) 16位立即数 I/O口地址 位立即数: 口地址( 535) 16位立即数:I/O口地址(0~65 535) 源累加器( 源累加器(A或B) 目的累加器( 目的累加器(A或B) 16位长立即数 16位长立即数
9
3.1.2 绝对寻址
1.数据存储器寻址 1.数据存储器寻址
用于确定操作数存于数据存储单元的地址。 用于确定操作数存于数据存储单元的地址。 语法: 语法:使用一个标号或一个数字来指定 数据空间的一个地址。 数据空间的一个地址。
MVKD EXAM1, * AR5 EXAM1,
数据存储器的 16位地址 16位地址dmad值 位地址dmad值
11
3.1.2 绝对寻址
3.端口(PA) 3.端口(PA)寻址 端口
用一个符号或数字来确定外部I/O端口的地址。 用一个符号或数字来确定外部I/O端口的地址。 I/O端口的地址
PORTR FIFO, * AR5 FIFO,
I/O端口地址 I/O端口地址PA 端口地址PA
12
3.1.2 绝对寻址
*(lk)寻址 4. *(lk)寻址
3.1.5 间接寻址
1. 单操作数寻址
指令格式: 指令格式:
指令的标识符 表示指令为间接寻址
7
3位辅助寄存器域 用来定义所使用的辅助寄存器
6~3 2~0
15 ~ 8
操作码
I=1
MOD
ARF
指令的8 指令的8位操作码
4位的方式域 用来定义间接寻址的类型
28
3.1.5 间接寻址
单操作数间接寻址形式
MOD域 MOD域 操作句法 0000 0001 0010 0011 0100 * ARx * ARxARx* ARx+ ARx+ * +ARx 功 能 说 明 地址= 地址=ARx 地址= 地址=ARx ARx=ARxARx=ARx-1 地址= 地址=ARx ARx= ARx=ARx+1 ARx= ARx=ARx+1 地址= 地址=ARx ARx的内容为数据存储器地址 ARx的内容为数据存储器地址 寻址结束后,ARx地址减1 。[注2] 地址减1 寻址结束后,ARx地址减 寻址结束后,ARx地址加1。 [注1] 地址加1 寻址结束后,ARx地址加 ARx中的地址加 ARx中的地址加1后,再寻址。 中的地址加1 再寻址。 [注1] 、[注2]、[注3] 2]、
18
3.1.4 直接寻址
地址形成过程: 地址形成过程:
当CPL=0时, 时
直接寻址 指 令 页指针DP 页指针DP 位于ST0中 (位于ST0中)
15~8 7 6~0
操作码
I=0
dmad
9位数据页指针DP 位数据页指针DP
16位数据 16位数据 存储器地址
9位数据页指针DP 位数据页指针DP 高 9位
绝对地址寻址的指令至少应为2个字长。 绝对地址寻址的指令至少应为2个字长。 绝对寻址有四种类型 : 数据存储器(dmad)寻址 寻址; ① 数据存储器(dmad)寻址; ② 程序存储器(pmad)寻址; 程序存储器(pmad)寻址; 寻址 端口(PA)寻址 寻址; ③ 端口(PA)寻址; *(1k)寻址。 k)寻址 ④ *(1k)寻址。
用途: 用途:用于表示常数或对寄存器初始化
6
3.1 寻址方式
1 立即寻址 2 绝对寻址 3 累加器寻址 4 直接寻址 5 间接寻址 6 存储器映象寄存器寻址 7 堆栈寻址
7
3.1.2 绝对寻址
指令中含有所要寻找的操作数的16位 指令中含有所要寻找的操作数的16位 16 存储单元地址。 存储单元地址。 MVKD TABLE,*AR1 TABLE,*AR1
RSBX LD #3, LD @x,
CPL DP A
第 4 页
ADD#4,DP A LD @y, ADD @y, A
23
3.1.4 直接寻址 直接寻址特点: 直接寻址特点: 数据存储器的16 位地址是由DP 16位地址是由 DP或 ① 数据存储器的 16 位地址是由 DP 或 SP 与指令中包含的数据存储器低7 位地址dmad 与指令中包含的数据存储器低 7 位地址 dmad 拼接或相加构成; 拼接或相加构成; 可单周期寻址128个单元; 128个单元 ② 可单周期寻址128个单元; 用途:寻址速度快,用于速度关键的场合。 用途:寻址速度快,用于速度关键的场合。 注意: 注意: 上述两种直接寻址方式是相互排斥的; ① 上述两种直接寻址方式是相互排斥的; 采用DP寻址时 寻址时, ② 采用 寻址时,要注意数据所在的页面指针
使用一个指定数据空间的地址来确定数据 存储器中的一个地址。 存储器中的一个地址。 语法:允许所有使用单数据存储器(Smem) 语法:允许所有使用单数据存储器(Smem) 寻址的指令去访问数据空间的任意单元, 寻址的指令去访问数据空间的任意单元,而不 改变DP的值,也不用对AR进行初始化。 DP的值 AR进行初始化 改变DP的值,也不用对AR进行初始化。
29
3.1.5 间接寻址
单操作数间接寻址形式
MOD域 MOD域 0101 0110 0111 1000 1001 操作句法 * ARx-0 ARx* ARx+0 ARx+0 * ARx+0B ARx+0B * ARx-% ARx* ARx-0% ARx功 能 说 明 地址= 地址=ARx ARx=ARxARx=ARx-AR0 地址 = ARx ARx=ARx+ ARx=ARx+AR0 地址= 地址=ARx ARx= ARx=B(ARx+AR0) 地址= 地址=ARx ARx=Circ(ARxARx=Circ(ARx-1) 寻址结束后, ARx中减去 寻址结束后,从ARx中减去AR0 中减去AR0 的值。 的值。 寻址结束后,把AR0加到ARx中。 加到ARx中 寻址结束后, AR0加到 寻址结束后, 寻址结束后,用反向传送进位 AR0加到 加到ARx中 的方法将 AR0加到ARx中 寻址结束后,ARx中的地址值按 寻址结束后,ARx中的地址值按 循环减的方法减1 循环减的方法减1。[注1]
14
3.1.3 累加器寻址
将累加器的内容作为地址去访问程序 存储单元 用途: 用途:用于完成程序存储空间与数据 存储空间之间的数据传输。 存储空间之间的数据传输。 READA Smem WRITA Smem
15
Fra Baidu bibliotek
3.1 寻址方式
1 立即寻址 2 绝对寻址 3 累加器寻址 4 直接寻址 5 间接寻址 6 存储器映像寄存器寻址 7 堆栈寻址
22
3.1.4 直接寻址 数据存储器存储数据如图所示, 数据存储器存储数据如图所示,采用数据页指 DP直接寻址 完成x 直接寻址, 单元的两个数据求和。 针DP直接寻址,完成x,y单元的两个数据求和。
数据存储器 地址 第 3 页 0180 . . . X: y: 01FF 01FF 0200 . . . 数据 0001 . . . 1000 0500 . . .
程序存储器 操作码 立即数1234h 立即数1234h
4
3.1.1 立即寻址
RPT #99
;将下一条指令循环100次 将下一条指令循环 次
ADD #0ffh,A ;将0ffh加给 , 加给A 加给
5
3.1.1 立即寻址
特点:指令中含有一个固定的立即 特点:指令中含有一个固定的立即 运行速度较快, 数,运行速度较快,但需占用程序存储 空间,并且数值不能改变。 空间,并且数值不能改变。
地址= 地址=ARx 寻址结束后, 寻址结束后,用反向传送借位的方法 ARx* ARx-0B ARx=B(ARx-AR0) ARx=B(ARxARx中减去 中减去AR0的值 的值。 从 ARx中减去AR0的值。
[注1]:寻址16位字时增/减量为1,32位字时增/减量为2。 1]:寻址16位字时增/减量为1 32位字时增/减量为2 16位字时增 位字时增 2]:这种方式只能用写操作指令。 [注2]:这种方式只能用写操作指令。 3]:这种方式不允许对存储器映像寄存器寻址。 [注3]:这种方式不允许对存储器映像寄存器寻址。
10
3.1.2 绝对寻址
2.程序存储器寻址 2.程序存储器寻址
用于确定程序存储器中的一个地址。 用于确定程序存储器中的一个地址。 语法: 语法:使用一个符号或具体的数字来指 定程序空间的一个地址。 定程序空间的一个地址。
MVPD TABLE, * AR2 TABLE,
程序存储器的 16位地址pmad值 16位地址 位地址pmad值
LD *(PN), A *(PN),
注意:*(1k)寻址的指令不能与循环指令(RPT,RPTZ)一起使用。 注意:*(1k)寻址的指令不能与循环指令(RPT,RPTZ)一起使用。 寻址的指令不能与循环指令 一起使用
13
3.1 寻址方式
1 立即寻址 2 绝对寻址 3 累加器寻址 4 直接寻址 5 间接寻址 6 存储器映像寄存器寻址 7 堆栈寻址
24
3.1 寻址方式
1 立即寻址 2 绝对寻址 3 累加器寻址 4 直接寻址 5 间接寻址 6 存储器映像寄存器寻址 7 堆栈寻址
25
3.1.5 间接寻址
26
3.1.5 间接寻址
按寻址的辅助寄存器数目来分类
单操作数寻址 双操作数寻址
按辅助寄存器内地址更新方式分类
线性寻址 循环寻址 位倒序寻址
27
16
3.1.4 直接寻址
利用数据指针DP和堆栈指针SP寻址。 利用数据指针DP和堆栈指针SP寻址。 DP和堆栈指针SP寻址
指令格式
15 ~ 8 7 6~0
操 作 码
I=0
数据存储器地址(dmad) 数据存储器地址(dmad)
特点: 特点:① 指令中只含有数据存储器的低 位地址( 指令的标识符 7位地址(偏移地址dmad)数据存储器地址 指令的8 偏移地址dmad); 指令的8位操作码 ② 16位数据存储器地址由基地址( 16位数据存储器地址由基地址 位数据存储器地址由基地址( SP) 数 据 页 指 针 DP 或 堆 栈 指 针 SP) 和 偏 移 地 址 dmad)共同构成。 (dmad)共同构成。
第3章 TMS320C54x的指令系统 TMS320C54x的指令系统
3.1 3.2 3.3
寻址方式 TMS320C54x的指令表示方法 TMS320C54x的指令表示方法 TMS320C54x的指令系统 TMS320C54x的指令系统
1
3.1 寻址方式
部分寻址 含 义 寻址指令中用到的缩写符号及其含义 缩略语 Smem 16位单寻址操作数 16位单寻址操作数
17
表示指令为直接寻址 包含了数据存储器偏移地址
3.1.4 直接寻址 基地址: ① 数据页指针DP(9位) 基地址: 数据页指针DP(9
② 堆栈指针SP。 堆栈指针SP。
当CPL=0时,数据存储器16位地址由DP 时 数据存储器16位地址由 16位地址由 和偏移地址dmad拼接构成; 拼接构成 和偏移地址 拼接构成; 16位地址由 当CPL=1时,数据存储器16位地址由 时 数据存储器16位地址由SP 偏移地址dmad相加构成。 相加构成 加偏移地址 相加构成。
20
3.1.4 直接寻址
21
3.1.4 直接寻址 LD #4,DP , ADD @9h,A , ;指向页4(0200h-027Fh) 指向页 ( ) 中地址9h的 ;将数据页4中地址 的 将数据页 中地址 数据加给AccA 数据加给
直接寻址标识: 直接寻址标识: ① 变量前加@,如@x; 变量前加@ ② 在偏移量前加@,如@5。 在偏移量前加@
相关文档
最新文档