DSP寻址方式
DSP第四章 TMS320C20X系列的寻址方式及汇编指令
LT *0+
执行指令前: ARP=1, (AR1)=100H,(AR0)=3 执行操作: 用AR1所指的数据存储器100H内 容装载暂时寄存器; 执行指令后: ARP=1,(AR1)=103H
⑤减去索引量
方法
举例
指令使用AR内容作
LT *0-
为数据存储器地址,
执行指令后AR内容 执行指令前:
自动减去ARO的内容。 ARP=1, (AR1)=100H,(AR0)=3
执行操作:
用AR1所指的数据存储器100H内
容装载暂时寄存器;
执行指令后:
ARP=1,(AR1)=FEH
⑥加上索引量,反向进位
方法
举例
指令使用AR内容作为 数据存储器地址,执 行指令后AR内容自动 加上AR0的内容,该 加法采用反向进位方 法。 注:主要用于FFT算 法
LT *BR0+
把AR0加到辅助寄存器中时,地址以位倒序的方 式产生,即进位是从左向右,而不是从右向左进位。
LTP ind [,ARn]
MAC MAC pma , dma
乘且累加
MAC pma, ind [ , ARn]
MACD MACD pma, dma
乘且累加,并将被寻址数据移至下一单元
MACD pma, ind [, ARn]
MPY MPY dma
MPY ind [, ARn]
MPYA/MPYS
累加前次乘积,再将TREG与被寻址数相乘
PAC PAC
PREG转入累加器ACC
SPH
存储PREG高16位,直接或间接寻址
SPL
存储PREG低16位,直接或间接寻址
例1:MAC
0FF00H,02H ;DP=6,地址300H~37FH,PM=0, CNF=1
第三章:DSP软件体系_寻址方式
DSP技术及其应用 26
TMS320C54X-DSP
循环寻址:
许多算法,如卷积,相关和FIR滤波等,都需要在存 储器中实现一个循环缓冲器。在这些算法中,一个循环缓 冲器就是一个包含了最近的数据的滑动窗口。当新的数据 来到时,缓冲器就会覆盖最早的数据。循环缓冲器实现的 关键是循环寻址的实现。‘C54x间接寻址中提供了循环寻 址的方式,以%表示。 循环寻址图示
*ARx-0%/*ARx+0% : – 访问后,从ARx中以循环寻址的方 式减 去/加上AR0 *ARx(lk): – ARx和16-bit的长偏移(lk) 的和用来作为数据存储器地址。 ARx本身不被修改 *+ARx(lk): – 在寻址之前,把一个带符号的16-bit的长偏移(lk)加 到ARx中,然后用新的ARx的值作为数据存储器的地址 *+ARx(lk)%: – 在寻址之前,把一个带符号的16-bit的长偏移以循环寻址 的方式加到ARx中,然后再用新的ARx的值作为数据存 储器的地址
*ARx-0B/ *ARx+0B :
– 访问后,从ARx中以位倒序进位的方式减去/加上AR0
*ARx-0/ *ARx+0 :
– 访问后,从ARx中减去/加上AR0
*ARx-%/ *ARx+% :
– 访问后,ARx中的地址以循环寻址的方式减1/加1
DSP技术及其应用 12
TMS320C54X-DSP
共有四条使用堆栈寻址方式访问堆栈的指令:
PSHD 把一个数据存储器的值压入堆栈。 PSHM 把 一 个 存 储 器 映 射 寄 存 器 的 值 压 入 堆 栈 。 POPD 把一个数据存储器的值弹出堆栈。 POPM 把一个存储器映射寄存器的值弹出堆栈。
DSP课件NO.6 寻址
2) 访问存储器映射寄存器 指针包含正确的地址 访问存储器映射寄存器(指针包含正确的地址 指针包含正确的地址)
3) 访问寄存器位 只是要保证指针含有正确的bit号码。 BCLR *(AR4+T1), AC2 BTSTP *AR1(#5), AC2 ;设AR1=16 4) 访问 口 访问I/O口 MOV port(*AR4+), T2 ;设AR4=FF80h
3.1 寻址方式
MPY *AR0, *(CDP+T0), AC0 :: MPY *AR1, *(CDP+T0), AC1
注意区别:#AR0 ,AR0和*AR0的区别。
3.1 寻址方式
3.1.4 循环寻址
循环寻址可以和任意一种间接寻址模式一起 使用。每一个辅助寄存器和系数数据指针,作为 对数据或寄存器位的指针时,都可以独立配置成 线性或循环寻址.
举例:AMOV #03FF00h, XSP MOV *SP(5), T2 MOV dbl(*SP(5)), pair(T2) //(注意长字的对齐规则。)
3.1 寻址方式
三、寄存器bit直接寻址模式 寄存器 直接寻址模式 操作数:@bitoffset
举例:BSET @2, AC2
3.1 寻址方式
3.1寻址方式 寻址方式
二、双间接寻址模式 该方式通过8个辅助寄存器,作两次数据存储器 访问。与单AR间接访问数据空间一样,也可以是线 性寻址或循环寻址。 间接操作数: 双AR间接操作数: 间接操作数 *ARn, *ARn+,*ARn-,*(ARn+T0), *(ARn-T0), *ARn(T0), *(ARn+T1), *(ARn-T1)。
四、PDP直接寻址模式 直接寻址模式 16位的I/O地址的产生: PDP(9bit)+Poffset(7bit) 举例:MOV port(@0), T2 ; (设PDP=511)
DSP寻址方式与指令系统
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)寻址 使用一个指定数据空间的地址来确定数据存 储器中的一个地址。
最新DSP寻址方式
pmad 16位立即数:程序存储器地址(0~65 535)
PA
16位立即数:I/O口地址(0~65 535)
src
源累加器(A或B)
dst
目的累加器(A或B)
1k
16位长立即数
2
3.1 寻址方式
寻址方式分为数据寻址和程序寻址两种。
1 立即寻址 2 绝对寻址 3 累加器寻址 4 直接寻址 5 间接寻址 6 存储器映像寄存器寻址 7 堆栈寻址
DSP寻址方式
3.1 寻址方式
部缩分略寻语址寻址指令中用含到的缩义写符号及其含义
Smem 16位单寻址操作数
Xmem
16位双寻址操作数,用于双操作数或部分单操作数 指令,从DB数据总线上读取
Ymem
16位双寻址操作数,用于双操作数指令,从CB数据 总线上读取
dmad 16位立即数:数据存储器地址(0~65 535)
MVKD EXAM1, * AR5
数据存储器的 16位地址dmad值
10
3.1.2 绝对寻址
2.程序存储器寻址
用于确定程序存储器中的一个地址。 语法:使用一个符号或具体的数字来指 定程序空间的一个地址。
MVPD TABLE, * AR2
程序存储器的 16位地址pmad值
11
3.1.2 绝对寻址
3.端口(PA)寻址
数据存储器
地址 数据
第 0180 0001
3
页
...
...
X: 01FF 1000
第 y: 0200 0500
4
页
...
...
RSBX CPL LD #3, DP LD @x, A ALDD#4@,DyP, A ADD @y, A
第三章DSP指令寻址方式
DP值 0000 0000 0
偏移量 000 0000
数据存储器 第0页:0000h~007Fh
0000 0000 0 0000 0000 1
0000 0000 1 0000 00010
0000 00010 1111 1111 1
1111 1
~ ~ ~ ~
111 1111 000 0000 第1页:0080h~00FFh
址,而是将此地址(或寄存器)内容再作为地址。间接
寻址通过8个16位的辅助寄存器访问数据存储器。
1.1 立即寻址方式 在立即寻址方式中,指令字中包含指令所需 的一个常数。两种立即寻址方式为: 短立即寻址。用短立即寻址的指令将一个8位、9 位或13位的常数作为操作数。短立即寻址指令为 一个单指令字,并且有一个常数嵌在该指令中。 长立即寻址。用常立即寻址的指令将一个16位常 数作为操作数,从而需要两个指令字。该常数作 为第二个指令字被发送。这个16位字值可以是绝 对常数或二进制补码。
3.1 DSP指令寻址方式
也称为立即数寻址方式。
立即寻址:需要找的数据就在指令里,不需要存储器找, 直接寻址:即指令给出的是需要找的数的地址,按此地
址直接访问即可。直接寻址将指令字的7位与数据存储 器页指针(DP)的9位连接起来,形成一个16位数据存 储器地址。 间接寻址:即指令给出的既不是立即数,也不是直接地
下一个辅助寄存器 除了更新当前辅助寄存器的内容外,某些指令还可以指 明下一个辅助寄存器或下一个AR。当这条指令执行完 成后,这个寄存器就成为当前辅助寄存器。允许用于指 定下一个辅助寄存器的指令用新的值装载ARP。当ARP 用该值装载时,以前的ARP值被装入辅助寄存器指针缓 冲器(ARB)。 例1.6说明了下一个辅助寄存器的选择和其他间接寻址的 特点。 例1.6 选择新的当前辅助寄存器。 MAR *,AR1;向ARP装入1,指令执行后使得AR1成为 当前辅助寄存器 LT *+,AR2;AR2是下一个辅助寄存器。用AR1指定的 地址内容装载TREG,AR1内容加1,指令执行后使得 AR2成为当前辅助寄存器。 MPY *;TREG乘以AR2所指定的单元内容
《DSP寻址方式》课件
01
现状
02
广泛应用于信号处理、图像处理、通信等领域。
在大数据和人工智能时代,DSP寻址方式发挥着越来越重要的
03
作用。
DSP寻址方式的未来发展趋势和挑战
发展趋势
1
2
结合人工智能技术,实现更高效的算法加速。
3
支持向量寻址,满足高维数据处理需求。
DSP寻址方式的未来发展趋势和挑战
• 云端和边缘计算的寻址优化。
DSP寻址方式的未来发展趋势和挑战
01
挑战
02 如何应对数据爆炸带来的存储和访问挑战 。
03
如何平衡计算效率和存储空间的需求。
04
如何提高寻址方式的通用性和灵活性,以 适应不断变化的应用场景。
THANKS
感谢观看
算法优化
通过算法优化减少计算量,降低功耗和成本 。
05
总结与展望
DSP寻址方式的发展历程和现状
初始阶段
简单的线性寻址,主要用于基础的数 学运算。
扩展阶段
引入了变址寻址和间接寻址,增强了 数据处理能力。
DSP寻址方式的发展历程和现状
• 现代阶段:支持多种寻址方式,满足复杂算法需 求。
DSP寻址方式的发展历程和现状
详细描述
寄存器寻址方式是指操作数的有效地址通过寄存器给出,即有效地址存储在寄存器中,通过寄存器访问操作数。 这种方式可以用于访问寄存器中的数据,也可以用于实现寄存器间接寻址等操作。
其他寻址方式
总结词
其他特殊的寻址方式
详细描述
除了以上三种寻址方式外,还有一些特殊的寻址方式,如相对寻址方式、位寻址方式等 。这些寻址方式各有特点,可以根据具体的需求选择使用。
PID控制器
DSP汇编寻址方式
17
第6章 寻址方式和汇编指令
堆栈寻址方式
▲ SP(堆栈指针):在该方式下,16位的SP指针被用于访 问软件堆栈的信息.F2812的堆栈从存储器的低地址变化到 高地址,SP指针总是指向下一个空单元.当需要访问堆栈中 的数据时,由程序提供6位偏移量,SP的值减去这6位的偏 移量就是被访问的数据的地址,然后修改堆栈指针 SP. (P205 表6-1-3)
16bit
6bit
00 0000 0001 0000 0101 1101
DP
OFFSET
0041H
1DH
12
使用直接寻址方式访问数据存储器时,必须首先 对DP进行设置以确定数据页面,然后再书写进行某 种操作的指令,该指令的操作数将确定数据页面内部 的特定偏移单元。其步骤如下:
1. 设置数据页面 将当前数据页面载入DP。
式)
√ 在文件中使用内嵌伪指令
. c28_amode ;告诉汇编器后面的代码段都假定 AMODE=0
(C28x寻址方式)
. lp_amode ;告诉汇编器后面的代码段都假定AMODE=1
(与C2xLP全兼容的 寻址方式)
9
第6章 寻址方式和汇编指令
6 . 1 寻址方式
直接寻址方式
▲ 该寻址方式,16位的DP寄存器被当作一个固定的页指针,在 指令中提供6位或者7位的偏移量,将这些偏移量与DP寄存器 中的值相连接构成完整的地址.当访问固定寻址的数据结构 (比如外围寄存器和C/C++中的全局或静态变量) 时是一种很 有效的方法.
1
寻址方式和汇编指令
6.1、寻址方式 6.2、汇编语言指令集 6.3、汇编源程序
《DSP原理与应用》寻址方式和指令系统
《DSP原理与应用》寻址方式和指令系统三、TMS320LF240x寻址方式和指令系统3.1 寻址方式TMS320LF240x指令集采用3种基本的存储器寻址方式:立即寻址方式、直接寻址方式和间接寻址方式。
在立即寻址方式中,指令中所需要的常数作为指令的操作数直接给出。
立即寻址方式包括短立即寻址和长立即寻址。
在短立即寻址中,指令字包含一个8位、9位或13位的操作数,而长立即寻址采用16位的操作数。
当需要访问数据存储器时,用户可采用直接或间接寻址方式。
直接寻址方式将指令字的7位与数据存储器页指针(DP)的9位连接起来,形成16位数据存储器地址。
间接寻址通过8个16位辅助寄存器访问数据存储器。
3.1.1 立即寻址方式在立即寻址方式中,指令字中包含指令所需的一个常数。
对于短立即寻址,采用短立即寻址的指令将一个8位、9位或13位的常数作为操作数。
短立即寻址指令为一个单指令字,并且有一个常数嵌在该指令中。
长立即寻址的指令将一个16位常数作为操作数,从而需要两条指令字。
该常数作为第2条指令字被发送,该16位值可以是绝对常数或二进制补码。
如1:RPT #49 ;将紧跟RPT指令后的那条指令执行50次。
代码是:10111011 00110001 ;前面是RPT指令代码,后面是8位常数=49。
如2:ADD #65534,2 ;将数据65534左移两位后,再将结果加到累加器。
代码是:101111111001 0010 ;前面12位是立即寻址的ADD代码,后面是移位数。
11111111 11111110 ;是16位常数=65534=FFFEh。
3.1.2 直接寻址方式在直接寻址方式中,数据存储器地址以128为单位被分成若干块,这些块被称为数据页。
64K的数据存储器总共包含512个数据页,标号为0~511,如下表3-1所列。
当前数据页由状态寄存器ST0中的9位数据页指针(DP)值决定。
除数据页之外,处理器还必须知道该页上被访问的特定单元,这取决于7位偏移量,见表3-1。
第三章 DSP寻址方式
寻址方式:立即数寻址
绝对地址寻址
❖数据存储器地址(dmad)寻址:
用一个符号或一个数来确定数据空间中的 一个地址 例: MVKD sample,*AR5
sample所代表的就是一个dmad
绝对地址寻址
❖程序存储器地址(pmad)寻址:
用一个符号或一个数来确定程序地址 空间中的一个地址 例: MVKD table,*AR5 table 所代表的就是一个pmad
寻址方式:间将该AR的内容加1或减1,再寻址 (循环常用)
❖将 该 AR 的 内 容 加 上 或 减 去 AR0 的 内容,再寻址。
❖将该AR的内容逆向进位加上或减去 AR0的内容,再寻址。
寻址方式:间接寻址
ADD *,8,A ;将当前辅助寄存 器所指的地址里的数据,左移8-bit 后加给AccA
第三章 DSP的软件结构
寻址方式:立即数寻址
❖短立即数寻址(单字指令) 在指令字中包括立即操作数
RPT #99 ;将下一条指令循环100次 LD #0h,DP ;将0装入数据页指针 ADD #0ffh,A ;将0ffh加给AccA
寻址方式:立即数寻址
寻址方式:立即数寻址
❖长立即数寻址
指令字的后一个字是立即数(双字 指令)
用累加器中的数作为一个地址,可用来对 存放数据的程序存储器寻址:
READA Smem WRITA Smem
❖READA,把累加器A所确定的程序存储器单元 中的一个字,传送到数据存储器单元Smem中。
❖WRITA,把数据单元Smem中的一个字,传送 到累加器A确定的程序存储器单元。
存储器映射寄存器(MMR)寻址
寻址方式:直接寻址
DSP寻址方式
DSP寻址方式DSP(数字信号处理器)是一种专门用于数字信号处理的微处理器,其寻址方式是指DSP芯片对于内部存储器的寻址方式。
DSP寻址方式是DSP系统中非常重要的一部分,它决定了DSP芯片如何有效地访问和处理存储在内部存储器中的数据。
1. 直接寻址方式直接寻址方式是DSP中最简单的寻址方式之一。
在直接寻址方式下,指令中给出的地址直接用于指定待访问的存储单元。
这种寻址方式适用于数据存储单元数量较少且地址连续的情况。
例如,当使用直接寻址方式时,指令可以直接指定访问DSP内部存储器中的某个特定地址,无需进行地址转换或计算。
2. 间接寻址方式间接寻址方式是另一种常用的DSP寻址方式。
在间接寻址方式下,指令中给出的地址并不直接用于指定待访问的存储单元,而是用于指定一个包含存储单元地址的寄存器。
通过间接寻址方式,可以实现更加灵活的地址访问,尤其适用于需要频繁对不同存储单元进行访问的情况。
3. 基址寻址方式基址寻址方式是一种常用的寻址方式,它结合了直接寻址方式和间接寻址方式的优点。
在基址寻址方式下,指令中给出的地址作为“基址”,并结合一个偏移量用于计算访问目标存储单元的实际地址。
通过基址寻址方式,可以实现对存储单元的相对寻址,而无需显式地指定存储单元的具体地址。
4. 变址寻址方式变址寻址方式是一种基于寄存器的寻址方式,它通过使用一个特殊的寄存器,称为“变址寄存器”来实现寻址。
变址寻址方式可以对存储单元的地址进行动态调整,从而实现对存储单元的高效访问。
通过改变变址寄存器中的值,可以改变访问目标存储单元的地址,从而灵活地处理不同的数据访问需求。
5. 直接/间接寻址方式直接/间接寻址方式是一种结合了直接寻址方式和间接寻地址方式的寻址方式。
在直接/间接寻址方式下,指令中既给出了一个直接的地址用于直接寻址,又给出了一个指示寄存器的地址用于间接寻址。
通过使用直接/间接寻址方式,可以在同时满足直接访问和间接访问需求的情况下,提高DSP系统的灵活性和效率。
09dsp第九讲寻址方式
例如: LD STL *+AR1(8)% ,A A ,*+AR1(8)%
如果循环缓冲区长度BK=10,AR1=0100h,则N=4,EFB=0100h ,index=0, 由*+AR1(8)%知步和step=8 执行第一条指令时,index=index+step=8 ,寻址108h单元; 执行第二条指令时,index=index+step=8+8=16>BK,故index=index+stepBK=8+8-10=6 ,寻址106h单元; 第六条 开始时 100h 第三条:寻址104单元;
在寻址前ARx中的地址加1,然后再寻址 (只写,不能寻址MMR)
访问后从ARx中以位倒序进位方式减去 AR0 访问后从ARx中减去AR0 访问后把AR0中加到ARx 访问后把AR0中以位倒序进位方式加到 ARx
MOD域 1000 1001 10010 1011
操作码语法 *ARx-% *ARx-0% *ARx+% *ARx+0%
有四条数据存储器地址(dmad)寻址指令: MVDK Smem, dmad MVDM dmad, MMR
MVKD dmad, Smem
MVMD MMR, dmad
2。程序存储器地址(pmad)寻址: 用一个符号或一个数来确定程序空间的一个地址。 如:MVPD TABLE , *AR4 ;将地址为TABLE的程序空间的数复 到由AR4所指定的数据存储单元中去
I=1 表示指令的寻址方式为间接寻址 MOD为4位方式或,定义间接寻址的类型 ARF为3位辅助寄存器或定义寻址所使用的辅助寄存器
这种方式可以通过在指令中修改辅助寄存器来改变寻址单元,具体的个性方式有:
第六章 DSP寻址方式和汇编指令
第六章 DSP的寻址方式和汇编指令当硬件执行指令时,寻找指令所指定的参与运算飞操作数的方式——寻址方式。
根据程序的要求采用不同的寻址方式,可以有效地缩短程序的运行时间和提高代码执行效率。
汇编指令是可执行指令,每一条指令对应一条机器码,用来控制处理器仲的执行部分进行各种操作。
在本章节当中将主要以基于C28x的DSP芯片为例,为读者讲解DSP的寻址方式和汇编指令系统,其中大部分内容也可适用于其他Ti公司的DSP产品。
6.1汇编语言指令集概述在学习C28x系列DSP的寻址方式和汇编指令指令之前,先来对一些基础的知识进行讲解一下先,在汇编程序当中开发人员会常常使用到许多的特殊符号和标志,它们都具有特殊的含义,在学习汇编之前读者们必须先理解这些符号和标志含义,在这里会对其中最常用最重要的操作数符号和寄存器经行详细说明。
在进行汇编讲解之前先来了解一下开发的核心——CPU。
在TMS320C2000系列中,CPU 内核为:C20x/C24x/C240x:C2xLP:C27x/C28x:C27x、C28x这些CPU的硬件结构有一定差别,指令集也不相同,但是,在C28x芯片中可以通过选择兼容特性模式,使C28xCPU与C27xCPU及C2xLPCPU具有最佳兼容性。
可通过状寄存器STl的位OBJMODE和位AMODE的组合,选定模式。
C28x芯片具有3种操作模式:1.C28x模式:在该模式中,用户可以使用C28x的所有有效特性、寻址方式和指令系统,因此,一般应使C28x芯片工作于该种模式。
2.C27x目标——兼容模式:在复位时,C28x的CPU处于C27x目标-兼容模式。
在该模式下,目标码与C27xCPU完全兼容,且它的循环—计数也与C27xCPU兼容。
3.C2xLP源——兼容模式:该模式允许用户运行C2xLP的源代码,这些源代码是用C28x代码生成工具编译生成的。
在下面的讲解当中会牵涉到模式的转换,希望读者要搞清楚每一个模式的对应关系。
第六章DSP寻址方式和指令系统
间接寻址选项
选项 操作数 例子 LT *;(AR)—>TREG, AR 不变 不增不减 *
加1
减1
*+
*-
LT *+;(AR)—>TREG, AR +1—>AR
LT *-;(AR)—>TREG, AR–1—>AR LT *0+;(AR)—>TREG, AR+AR0—>AR LT *0-; (AR)—>TREG, AR–AR0 — >AR LT *BR0+; (AR)—>TREG, AR+AR0—>AR, 反向进 位加法
(18) SFL
功能:累加器左移; 句法:SFL 执行:PC+1; ACC(31)->C ACC(30:0)->ACC(31:1) 0->ACC(0) 状态位:执行不受SXM影响,结果影响C 说明:无
(19)SFR
功能:累加器算术右移; 句法:SFR 执行:PC+1; ACC(31:1)->ACC(30:0) ACC(0)->C if SXM=0, 0->ACC(31) else SXM=1 ACC(31)->ACC(31) ; 状态位:执行受SXM影响,结果影响C 说明:无
(4)ADDS
功能:符号抑制加至累加器; 句法:ADDS dma ;直接寻址 ADDS ind[,Arn];间接寻址 n=0~7 ind: 间接寻址操作选项 执行:PC+1; (ACC)+(dma) ->ACC; 状态位:执行受OVM影响,不受SXM影响,结果 影响C和OV 说明:符号扩展位被抑制;进位位按正常方式产 生。
6.1.2 直接寻址方式
DSP实验--第三章 数据寻址方式
5。间接寻址 。
1)定义: 根据8个辅助寄存器(AR0~AR7)中定义的任何一 )定义: 个寄存器给出的16-bit地址进行寻址; 这是DSP最具特色的寻址方式,它是用硬件来实现 数据存储器地址指针; 用符号 “﹡” 表示间接寻址; 绝对寻址实际上也是运用了间接寻址的硬件; 2)特点: 寻址方式灵活:可以从单条指令中读(或写)一个 )特点: 操作数、读两个操作数、读和写两个顺序操作数等; 两个辅助寄存器算术运算单元(ARAU0和ARAU1) 可以进行16-bit无符号算术运算,从而实现各种灵活 的寻址功能;
DSP54.3-9
页面指针寻址(DP)用得比较多。但在结构化编程-C语言 环境中,用堆栈指针寻址(SP), 此时要设CPL=1; 3)页面指针(DP)寻址举例 )页面指针 寻址举例(教材p.34) 寻址举例
.data x: .word 1000 y: .word 500 .text RSBX CPL LD LD ADD #x, DP @x, A @y, A x: y: Addr. 0180 01FF 0200 Data 0001 1000 0500 DP 0 0 3 0 0 3 0 0 3 ACC 00 00 A 1000 1001
.data x: .word 1000h y: .word 500h .text LD *(x), A ADD *(y), A
ACC A x: y:
Addr. 0180 01FF 0200
Data 1001 1000 0500
00 00
0000 0000
1000 1500
DSP54.3-6
3。累加器寻址 。
倒位序 先修改
绝对寻址
addr.=ARn, ARn=B(ARn +AR0) addr.=ARn, ARn=B(ARn –AR0) addr.=ARn+lk, ARn=ARn addr.=ARn+lk, ARn=ARn+lk addr.=circ(ARn+lk), ARn=circ(ARn+lk) addr.=ARn+1, ARn=ARn+1(只用来写) 只用来写) 只用来写 addr.=lk
DSP实验二 基本指令及寻址方式
实验二基本指令及寻址方式DSP的最大优势在于数据处理,所以DSP数据处理指令非常多,包括算术指令、逻辑指令或数据加载与传送指令。
并且与常规处理器相比,DSP还针对某些具体应用专门填加了一些处理指令,以方便和加快数据处理速度。
1.实验目的:(1)学习DSP指令的使用(2)学习并掌握DSP的基本寻址方式2.实验器材仿真器,DEMO板3.实验内容编写程序实现数据的算术运算4.DSP寻址方式(1)立即数寻址这种寻址方式最简单,立即数包含在指令中。
立即数包括短立即数和长立即数;短立即数为3、5、8、9Bit;长立即数为16位。
立即数包含在单字节和双字节指令中,短立即数为3、5、8、9Bit包含在单字节指令中,16-Bit指令包含在双字节指令中。
例1:RPT #99;将下一条指令执行100次(短立即数寻址)nop;Sacl data1;Dp .set 214RPT #dpADD #16384,2;将16384左移2位后加到累加器(ACC:32)中(长立即数寻址)(2)直接寻址、在直接寻址中,指令代码包含了数据存储器地址的低7位。
这7-bit位作为偏移地址与数据页指针相结合共同形成16-bit数据存储器实际地址。
如下图所示。
例30页0000-007FH1页0080-00FFH2页0100-017FH3页0180-01FFH4页0200-027FH5页0280-02FFH511页FF80-FFFFH.dataData_DP:Var0 .word 3 0200:3Var1 .word 2 0201:2Var2 .word 1 0202:1Result .word 0 0203:0.textLDP #Data_DPSUM0: LACC Var1 ACC=2LACC 2 ACC=1LACC #Var1 ACC=0201H(3) 间接寻址我们可以使用系统提供的8个辅助寄存器AR0~AR7实现灵活的间接寻址,通过间接寻址方式可以寻址数据存储器的64K 中任何一个寄存器单元。
DSP 第5讲 数据寻址
dma为低位构成16位数据存储单元的地址。 (组合) (2)当CPL=1时, SP中的9位为高位与指令中指定的7 位dma为低位构成16位数据存储单元的地址。(相加)
§5.4 直接寻址
DP的范围为0~511 ;dma的范围为0~127; SP可以指向存储器的任何地址,dma指向页面的特定位置,允许用 户 访问从基地址开始的连续128字的存储器块
§5.4 直接寻址
直接寻址的语法使用一个符号或一个数字指定偏移值。 DP由LD指令加载。如 LD #23,DP 直接寻址的指令书写格式为在变量前加一个@,或者用一 个直接数dma来设定偏移地址。 x指向01FF;y指向0200 ;求(X)+(Y)
§5.4 直Leabharlann 寻址 例: (在.cmd文件中进行设置 Xn:align(8) {}> DATA PAGE1) Xn .usect “Xn”,5 ; .usect为未初始化的自定义段保留5个空间 .data ;数据段,通常包含初始化的数据,分配到数据空间 table .word 1 .word 2 .word 3 .word 4 .word 5 .text ;文本段,通常包含可执行的代码 start: STM #Xn, AR1 ;AR1Xn RPT #4 ;重复计数器RC=4+1=5,重复执行下面的指令5次 MVKD table, *AR1+ ;将定义的数据送到缓冲区中 STM #Xn,AR3 ;相当于AR3指向循环缓冲区的基地址 STM #5, BK ;缓冲区大小为5 STM #1, AR0 AA: MVDK *AR3+0%, 3000h B AA .end
0111(7)
《DSP寻址方式》课件
3 DSP寻址方式的应用实例
4 DSP的未来发展方向
DSP在数字滤波等方面具有广泛应用,通过选 择合适的寻址方式和算法,可以有效提高数 字信号处理的性能和效率。
未来随着DSP技术的不断发展,DSP的功耗和 成本将进一步降低,DSP的应用范围也将不断 拓展和完善。
DSP的特点和优势
DSP具有高效的并行运算能 力、灵活的寻址和数据储存 结构、低功耗和低成本等优 点,可以大幅提高数字信号 处理的效率和精度。
DSP寻址方式的分类
1
直接寻址方式
2
直接寻址方式通过指定数据的物理地址
来访问数据,在存储器寻址和高速信号
处理方面具有优势。
3
寄存器寻址方式
4
寄存器寻址方式是指通过指定寄存器名 称来访问寄存器中的数据,具有简单、
在程序编译阶段的优化
4
在程序编译阶段应该通过优化算法和代码 生成技术来提高程序的效率和质量。
5
寻址方式的优化目标
对DSP寻址方式的优化目标通常包括提高 运行速度、降低功耗、优化程序结构和提 高数据处理精度。
在程序设计阶段的优化
在程序设计阶段应该尽可能选择简单直观 的寻址方式,避免采用复杂和低效的寻址 方式。
在程序执行阶段的优化
在程序执行阶段应该通过指令级并行、数 据级并行和多路径执行等技术来提高程序 的运行速度和性能。
DSP寻址方式的应用实例
数字滤波
DSP在数字滤波中应用广泛,可 通过选择不同的寻址方式和算 法来增强数字信号处理的效率 和精度。
不同寻址方式在数字 滤波中的应用
3-DSP的寻址方式
5、间接寻址
▪ 8个辅助寄存器(AR0-AR7),由一个辅 助寄存器指针(ARP 3-bit)来指定
▪ 辅助寄存器算术单元(ARAU)作16-bit无 符号数运算,决定一个新的地址,装入辅 助寄存器中的一个
▪ AR0-AR7的内容相当灵活,可以装入立即 数,加上立即数,减去立即数,也可以从 数据存储器装入地址,还可以作以下的变 址寻址:
编程实例
3
y0 ai xi a0 x0 a1x1 a2 x2 a3 x3 i0
.mmregs .bss x,4,1 a0 .word 012h a1 .word 3211h a2 .word fe11h a3 .word ff03h .sect “program” LD #x,AR1 LD #0,A,AR1 LD #a0,T
第三章 DSP的软件结构
The Software structure of DSP
寻址方式(Addressing mode)
(1)立即数寻址 (2)绝对地址寻址 (3)累加器寻址 (4)直接寻址 (5)间接寻址 (6)存储器映射寄存器寻址 (7)堆栈寻址
表3-1 寻址指令中用到的缩写符号及其含义
MVDM dmad, MMR
MVKD dmad, Smem
MVMD MMR, dmad
▪ 数据存储器寻址使用符号(符号地址)或一个表 示16位地址的立即数来指明寻址的数据存储单元 的16位绝对地址。例如:
MVKD SMAPLE,*AR5;
其中SMAPLE所代表的就是一个dmad。
返回
2)程序存储器地址(pmad)寻址
加器A确定的程序存储器单元。
4、直接寻址
▪ TMS320C54X的数据存储器分为512页, 每页128字。设置一个数据页指针DP (Data Pointer),用9-bit指向一个数据页, 再加上一个7-bit的页内偏移地址,形成16bit的数据地址
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
累加器寻址和直接寻址举例
• DM的地址:0206h 的地址: 的地址
15 0 14 0 13 0 12 0 11 0 10 0 9 8 7 6 5 4 3 2 1 0 1 0 0 0 0 0 0 1 1 0
5. 间接寻址 在间接寻址中,64K数据空间任意单元都可通过一 在间接寻址中,64K数据空间任意单元都可通过一 个辅助寄存器中的16-bit地址进行访问。 个辅助寄存器中的16-bit地址进行访问。 16 地址进行访问 C54x有 16-bit辅助寄存器 AR0-AR7)。 辅助寄存器( )。两个 ‘C54x有8个16-bit辅助寄存器(AR0-AR7)。两个 辅助寄存器算术单元(ARAU0和ARAU1), ),根据辅助寄 辅助寄存器算术单元(ARAU0和ARAU1),根据辅助寄 存器的内容进行操作,完成无符号的16 bit算术运算 16- 算术运算。 存器的内容进行操作,完成无符号的16-bit算术运算。 间接寻址很灵活, 间接寻址很灵活,不仅能从存储器中读或写一个单 16-bit数据操作数 数据操作数, 16-bit数据操作数,而且能在一条指令中访问两个数据存 储器单元(即从两个独立的存储器单元读数据, 储器单元(即从两个独立的存储器单元读数据,或读一 个存储器单元同时写另一个存储器单元, 个存储器单元同时写另一个存储器单元,或读写两个连 续的存储器单元)。 续的存储器单元)。
单操作数间接寻址类型: 单操作数间接寻址类型: • • • • • • • • *ARx: : ARx包含了数据存储器地址 包含了数据存储器地址 *ARx-/ *ARx+ : 访问后, 中的地址减1/加 访问后, ARx中的地址减 加1 中的地址减 *+ARx: 在寻址之前, 中的地址加1 : 在寻址之前,ARx中的地址加 中的地址加 *ARx-0B/ *ARx+0B :访问后,从ARx中以位倒序进位的 访问后, 中以位倒序进位 中以位倒序进位的 方式减去/加上 加上AR0 方式减去 加上 *ARx-0/ *ARx+0 : 访问后,从ARx中减去 加上 访问后, 中减去/加上 中减去 加上AR0 *ARx-%/ *ARx+% : 访问后,ARx中的地址以循环寻址 访问后, 中的地址以循环寻址 中的地址以 的方式减1/加 的方式减 加1 *ARx-0%/ *ARx+0% : 访问后,从ARx中以循环寻址的方 访问后, 中以循环寻址的方 式减去/加上 加上AR0 式减去 加上 *ARx(lk): ARx和16-bit的长偏移 的长偏移(lk) 的和用来 : 和 的长偏移 作为数据存储器地址。 作为数据存储器地址。ARx本身不 本身不 被修改
部分寻址的缩写语 符号 Smem Xmem Ymem dmad pmad PA src dst lk 含 义 16位单寻址操作数 16位单寻址操作数 16位的双寻址操作数 位的双寻址操作数, DB总线读出 16位的双寻址操作数,从DB总线读出 16位的双寻址操作数, CB总线读出 16位的双寻址操作数,从CB总线读出 位的双寻址操作数 16位立即数 位立即数, 16位立即数,数据存储器的地址 16位立即数 位立即数, 16位立即数,程序存储器的地址 16位立即数 I/O的地址 位立即数, 16位立即数,I/O的地址 源累加器 目的累加器 16位的长立即数 16位的长立即数
第三章 TMS320C54x的数据寻址方式 的数据寻址方式
主讲人:陈德宏
3.1 存储器寻址方式 寻址方式:当硬件执行指令时,寻找指令所参与运算的操 寻址方式:当硬件执行指令时, 作数的方法 立即数寻址: 立即数寻址: 绝对地址寻址: 绝对地址寻址: 累加器寻址: 累加器寻址: 直接寻址: 直接寻址: 指令中有一个操作数为固定的数 (加#) 指令中有一个操作数为固定的地址 用累加器的值作为地址去访问程序存储器 指令中的地址和所在的数据页指针DP DP或 指令中的地址和所在的数据页指针DP或SP 决定了操作数在数据存储器中的实际地址 间接寻址: 间接寻址: 按照辅助寄存器中的地址访问存储器 存储器映射寄存器寻址: 修改存储器映射寄存器中的值, 存储器映射寄存器寻址: 修改存储器映射寄存器中的值, 而不影响当前DP SP的值 DP或 而不影响当前DP或SP的值 堆栈寻址: 把数据压入和弹出系统堆栈。 堆栈寻址: 把数据压入和弹出系统堆栈。
(3)端口地址(PA) (3)端口地址(PA)寻址 端口地址 端口地址(PA)寻址使用一个符号(符号地址) 端口地址(PA)寻址使用一个符号(符号地址)或 一个表示16位地址的立即数来给出外部I/O口地址。 16位地址的立即数来给出外部I/O口地址 一个表示16位地址的立即数来给出外部I/O口地址。 PORTR PA, Smem PORTW Smem, PA 如:PORTR FIFO,*AR5
程序存储器(pmad)寻址使用符号(符号地址) 程序存储器(pmad)寻址使用符号(符号地址)或一个 表示16位地址的立即数来给出程序空间的地址。 16位地址的立即数来给出程序空间的地址 表示16位地址的立即数来给出程序空间的地址。 例如,把程序存储器中标号为TABLE单元中的值复制到 例如,把程序存储器中标号为TABLE单元中的值复制到 TABLE AR7所指定的数据存储器中去 指令可写为: 所指定的数据存储器中去, AR7所指定的数据存储器中去,指令可写为: TABLE,*AR7; MVPD TABLE,*AR7;
3. 直接寻址
在直接寻址中,指令代码包含了数据存储器地址的低七位。 在直接寻址中,指令代码包含了数据存储器地址的低七位。 (dma)作为偏移地址与 这7bit (dma)作为偏移地址与 数据页指针(DP),当ST1中的CPL位 数据页指针(DP),当ST1中的CPL位=0 ), 中的CPL 堆栈指针(SP), 堆栈指针(SP), 当ST1中的CPL位=1 ST1中的CPL位 中的CPL 相结合共同形成16位的数据存储器实际地址。 相结合共同形成16位的数据存储器实际地址。 16位的数据存储器实际地址 当偏移地址为变量时,变量前加@符号。 当偏移地址为变量时,变量前加@符号。 例如: 例如: X .set Y LD #2h DP LD @X, A ADD @Y, A STL A, @Y 5 .set 6
510 511
用SP直接寻址CPL=1: SP直接寻址CPL=1: 直接寻址 SP方式,以SP中内容作为 方式, 中内容作为dmad基地址,指令中地 基地址, 方式 中内容作为 基地址 址标号作为正向偏移量,二者相加构成dmad地址。 地址。 址标号作为正向偏移量,二者相加构成 地址 • 地址计算公式: 地址计算公式:
表、支持立即数寻址的指令
3或5bit立即数 8bit立即数 9bit立即数 5bit立即数 8bit立即数 9bit立即数 16bit立即数 16bit立即数 ADD ORM ADDM RPT AND RPTZ ANDM ST BITF STM CMPM SUB LD XOR MAC XORM OR
此处FIFO即为 即为PA 此处 即为
(4)*(lk)寻址: (4)*(lk)寻址: 寻址 适用于支持单数据存储器操作数(Smem)的指令: 适用于支持单数据存储器操作数(Smem)的指令: 例如: 例如:LD Smem, dst 则可以有 LD *(Buffer), A ;
将Buffer符号所指的数据存储单元的数装载到累加器A , Buffer符号所指的数据存储单元的数装载到累加器A 符号所指的数据存储单元的数装载到累加器 Buffer是一个符号常数 Buffer是一个符号常数
(2) pmad寻址 寻址 pmad寻址用一标号标记程序空间地址,这类指令有: 寻址用一标号标记程序空间地址, 寻址用一标号标记程序空间地址 这类指令有: FIRS Xmem, Ymem, pmad MACP Smem, pmad, src MACD Smem, pmad, src MVPD pmad, Smem
• *+ARx(lk): 在寻址之前,把一个带符号的16-bit的长偏 *+ARx(lk): 在寻址之前,把一个带符号的16 bit的长偏 16lk)加到ARx ARx中 然后用新的ARx ARx的值作 移(lk)加到ARx中,然后用新的ARx的值作 为数据存储器的地址 • *+ARx(lk)%:在寻址之前,把一个带符号的16-bit的长偏移 +ARx(lk)%:在寻址之前,把一个带符号的16 bit的长偏移 16以循环寻址的方式加到ARx ARx中 以循环寻址的方式加到ARx中,然后再用新 ARx的值作为数据存储器的地址 的ARx的值作为数据存储器的地址 符号, 有B符号,倒序进位 符号 符号, 有%符号,循环寻址 符号, 有0符号, 与AR0有关 符号 有关
1 . 立即数寻址 在立即数寻址中,指令里包括了立即操作数(常数, 在立即数寻址中,指令里包括了立即操作数(常数,用# 表示,#用来区分地址的表示方法) ,#用来区分地址的表示方法 k表示,#用来区分地址的表示方法)。 立即数可包含在单字或双字指令中。 立即数可包含在单字或双字指令中。 bit立即数在单字指令中 3-,5-,8-或9-bit立即数在单字指令中 16-bit立即数在双字指令中 16-bit立即数在双字指令中 例如: 例如: LD #80h, A
LD
FRAME
LD
2. 绝对寻址
指令中有一个操作数为所要寻址存储单元16位地址 指令中有一个操作数为所要寻址存储单元16位地址 16
术语解释:dmad-数据存储地址;pmad-程序存储地址; 术语解释:dmad-数据存储地址;pmad-程序存储地址; PA-口地址;lk-长整数。 PA-口地址;lk-长整数。 只有四种类型指令可以使用16bits的绝对地址寻址: 四种类型指令可以使用16bits的绝对地址寻址 只有四种类型指令可以使用16bits的绝对地址寻址: dmad寻址 dmad寻址 pmad寻址 pmad寻址 PA寻址 PA寻址 (lk)寻址 *(lk)寻址 dmad寻址 (1) dmad寻址 dmad寻址用一标号标记数据空间地址 这类指令有: 寻址用一标号标记数据空间地址, dmad寻址用一标号标记数据空间地址,这类指令有: MVDK Smem,dmad MVDM dmad,MMR MVKD dmad,Smem MVMD MMR,dmad 如:MVKD 1000h, *AR5 此处1000h即是dmad 此处1000h即是dmad 1000h即是