第3章节TMS320C54x数据寻址方式

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

3.5.1 单操作数寻址
3.5.2 双操作数寻址
返回首页
3.5.1 单操作数寻址

表3-2列出了单数据存储器(Smem)操作数间接 寻址类型。
特殊的间接寻址方式有:

1.循环寻址
If 0=<index+step<BK
WRITA
Smem
Smem
返回首页
3.4 直接寻址

在直接寻址方式中,指令中包含数据存储器地址 (dma)的低7位,这7位dma作为地址偏移量, 结合基地址(由数据页指针 DP 或堆栈指针 SP 给 出)共同形成16位的数据存储器地址。使用这种 寻址方式,用户可在不改变 DP 或 SP 的情况下, 对一页内的 128 个存储单元随机寻址。采用这种 寻址方式的好处是指令为单字指令,数据存储器 地址(dma)的低7位放在指令字中(如图3-1、 3-2所示)。

若 N=32, 起始地址的最低6位=000000 for N=30,起始地址的最低5位 =00000

访问循环缓冲区: 用N (nb bits) 初始化BK 选择1个 ARi 作为指针

在ARi中的有效起始地址低nb位为0。 结束地址 = 起始地址+N-1。

循环寻址的算法:
index=index+step

程序存储器(pmad)寻址使用符号(符号地址)或一个 表示 16 位地址的立即数来给出程序空间的地址。例如, 把程序存储器中标号为 TABLE 单元中的值复制到 AR7 所 指定的数据存储器中去,指令可写为: MVPD TABLE,*AR7; 返回本节

3.2.3 端口地址(PA)寻址

使用端口地址的指令有:
(4)直接寻址
(5)间接寻址
(6)存储器映射寄存器寻址
(7)堆栈寻址
表3-1 寻址指令中用到的缩写符号及其含义
缩写符号 含义 16位单数据存储器操作数 在双操作数指令及某些单操作数指令中所用的16位双数据存储 器操作数,从DB总线上读出 在双操作数指令中所用的16位双数据存储器操作数,从CB总线 上读出;在读同时并行写的指令中表示写操作数 16位立即数——数据存储器地址(0~65535) 16位立即数——程序存储器地址(0~65535) 16位立即数——I/O口地址(0~65535) 源累加器(A或B) 目的累加器(A或B) 16位长立即数
第3章 TMS320C54x的数据寻址方式

3.1 立即寻址 3.2 绝对寻址 3.3 累加器寻址 3.4 直接寻址 3.5 间接寻址 3.6 存储器映象寄存器寻址


3.7 堆栈寻址
寻址方式小结
TMS320C54x DSP提供以下7种基本数据寻址方式。
(1)立即数寻址
(2)绝对地址寻址 (3)累加器寻址
Smem
Xmem Ymem dmad pmad PA src dst
lk
3.1 立即寻址

在立即寻址方式中,指令中包括了立即操作数。
一条指令中可对两种立即数编码,一种是短立即 数(3、5、8或9位),另一种是16位的长立即数。 短立即数指令编码为一个字长,16位立即数的指 令编码为两个字长。 立即数寻址指令中在数字或符号常数前面加一个 “#”号,来表示立即数。
SMAPLE,*AR5;
MVKD
返回本节
3.2.2 程序存储器(pmad)寻址


使用程序存储器寻址的指令有:
FIRS Xmem, Ymem, pmad MACP Smem, pmad, src MVPD pmad, Smem MACD Smem, pmad, src MVDP Smem, pmad
返回首页
3.2.1 数据存储器(dmad)寻址

使用数据存储器寻址的指令有:
MVDK Smem, dmad MVKD dmad, Smem MVDM dmad, MMR MVMD MMR, dmad

数据存储器寻址使用符号(符号地址)或一个表 示16位地址的立即数来指明寻址的数据存储单元 的16位绝对地址。例如:
循环寻址

间接寻址中用%表示循环寻址方式
*ARi-%, *ARi+%, *ARi-0%, *ARi+0%, *ARi(lk)%

wenku.baidu.comBK寄存器 存放循环缓冲区的长度N。 使用循环缓冲区之前,必须对BK初始化。 可以在不同地址安排多个循环缓冲区,但它们 的长度必须相同。

如果N表示为nb位二进制数,起始地址的最低( LSB) 的nb位必须为0: 例如:
2.倒序寻址(如表3-3所示)
表3-2 单数据存储器操作数间接寻址类型
循环缓冲区
Data Memory
Start_address = xxxxxxxxxxx00000 ARi
ARi
xxxxxxxxxxx00010
BK N=30=1 1 1 1 0
End_address = xxxxxxxxxxx11111

LD
#0,ARP
;ARP=0(#k3)
LD
LD LD
#3,ASM
#50,DP #1234,A
;ASM=3(#k5)
;DP=50(#k9) ;A=1234(#lk)
返回首页
3.2 绝对寻址

3.2.1 数据存储器(dmad)寻址
3.2.2 程序存储器(pmad)寻址 3.2.3 端口地址(PA)寻址 3.2.4 长立即数*(lk)寻址
长立即数*(lk)寻址使用一个符号(符号地址) 或一个表示16位地址的立即数来指定数据存储空 间的一个地址。例如,把数据空间中地址为 BUFFER 单元中的数据传送到累加器 A,指令可 写为: LD *(BUFFER),A
返回本节

3.3 累加器寻址

累加器寻址是用累加器中的数值作为一个地址读 写程序存储器。共有两条指令可以采用累加器寻 址: READA
PORTR PORTW PA, Smem Smem , PA

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

长立即数*(lk)寻址用于所有支持单数据存储器 操作数(Smem)的指令。
相关文档
最新文档