DSP原理及应用第三章.pptx
《DSP原理及应用第三章.pptx》由会员分享,可在线阅读,更多相关《DSP原理及应用第三章.pptx(157页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、11立即数寻址2绝对地址寻址3累加器寻址4直接寻址5间接寻址6存储器映象寄存器寻址7堆栈寻址寻址分类第1页/共157页2 1立即数寻址 在操作数前面需要加字号来说明该操作数为立即数。否则会把该操作数误认为是一个地址,从而把立即数寻址变成绝对地址寻址。特点指令中包含有执行指令所需要的操作数。立即数分为3、5、8或9位的短立即数和16位的长立即数两种。短立即数可包含在单字或双字指令中,长立即数在双字指令中。注意LD#93h,ALD 93h,A 举例第2页/共157页3 特点:指令中特点:指令中含有一个固定的立即数含有一个固定的立即数,运行速度,运行速度较快,但需占用程序存储空间,并且数值不能改变。
2、较快,但需占用程序存储空间,并且数值不能改变。用途:用于对寄存器初始化。用途:用于对寄存器初始化。3 3位位立即数立即数5 5位位立即数立即数8 8位位立即数立即数9 9位位立即数立即数1616位位立即数立即数LDLDFRAMELDRPTLDADDADDMANDANDMBITFCMPMLDMACORORMRPTRPTZSTSTMSUBXORXORM支持立即数的指令支持立即数的指令 第3页/共157页4 2绝对地址寻址特点在指令中包含有所要寻址的存储单元的16位地址。这个16位的地址可以用其所在单元的地址标号或者16位符号常数来表示。绝对寻址有四种类型绝对寻址有四种类型绝对寻址有四种类型 :数据
3、存储器地址数据存储器地址数据存储器地址(dmad)dmad)dmad)寻址寻址寻址;程序存储器地址程序存储器地址程序存储器地址(pmad)(pmad)(pmad)寻址寻址寻址;端口端口端口(PA)PA)PA)寻址寻址寻址;*(1k1k1k)寻址。寻址。寻址。第4页/共157页5(1)数据存储器地址(damd)寻址 用一个符号或一个数来确定数据空间的一个地址。方法MVKD SAMPLE,*AR3LD 93h,A 举例第5页/共157页6用一个符号或一个具体的数来确定程序存储器中的一个地址(2)程序存储器地址(pmad)寻址 方法MVPD TABLE,*AR4MVPD 90h,*AR4 举例第6页
4、/共157页7用一个符号或一个常数来确定外部I/O口地址(3)PA寻址 端口(PA)方法PORTR FIFO,*AR5PORTR 90h,*AR5 举例第7页/共157页8用一个符号或一个常数来确定数据存储器中的一个地址(4)*(lk)寻址 方法LD *(BUFFER),A 举例特点允许所有使用Smem寻址的指令去访问数据空间的任意单元而不改变数据页指针(DP)的值,也不用对ARx进行初始化 第8页/共157页9绝对寻址总结绝对寻址总结 161616位地址表示形式:位地址表示形式:位地址表示形式:地址符号,如:地址符号,如:地址符号,如:TABLETABLETABLE;161616位数值,如:
5、位数值,如:位数值,如:89AB89AB89AB、123412341234。特点:指令中包含一个固定的16位地址,能寻 址所有数据、程序和I/O存储空间,但 运行速度慢,需要较大的存储空间。用途:用于对速度要求较低的场合。用途:用于对速度要求较低的场合。第9页/共157页10用累加器中的数值作为地址来读写程序存储器。方法READA Smem WRITA Smem 举例特点可用来完成程序存储器单元的数据与数据存储器单元的数据进行交换 3累加器寻址第10页/共157页11 注 意:大多数C54x用A的低16位作为程序存储器的地址,而C548和C549是以A的低23位作为程序存储器地址,C5402是
6、以A的低20位作为程序存储器地址;上述两条指令重复使用时,累加器A自动增减;只能使用累加器A寻址程序空间。第11页/共157页12用一个符号或一个常数来确定7位偏移值,与DP或SP共同形成16位的数据存储器实际地址。4直接寻址方法15 876 0操操 作作 码码I=0数据存储器地址数据存储器地址(dmad)指令的指令的8 8位操作码位操作码指令的标识符指令的标识符表示指令为直接寻址表示指令为直接寻址 数据存储器地址数据存储器地址 包含了数据存储器偏移地址包含了数据存储器偏移地址 指令格式:指令格式:第12页/共157页13 地址形成过程:地址形成过程:当CPL=0时,直接寻址直接寻址指指 令令
7、158760操作码操作码I=0dmad页指针页指针DP(位于位于ST0中中)9位数据页指针位数据页指针DP9 9位数据页指针位数据页指针DPDP高9位dmaddmad低7位1616位数据位数据存储器地址存储器地址CPL=0 7位 dma域 与 9bit的 DP相 结 合 形成16位的数据存储器地址。CPL=1 7位dma域加上(正偏移)SP的值形成16位的数据存储器地址。第13页/共157页14 地址形成过程:地址形成过程:当CPL=1时,直接寻址直接寻址指指 令令158760操作码操作码I=0dmad高9位dmaddmad低7位1616位数据位数据存储器地址存储器地址1616位堆栈指针位堆栈
8、指针SPSP堆栈指针堆栈指针SPSPSP+dmadSP+dmad1616位位SP+dmadSP+dmad第14页/共157页15 DPDP地地址址的的范范围围是是从从0 0 511(2511(29 9-1)-1),将将存存储储器器分分成成512512页。页。以以DPDP为为基基准准的的直直接接寻寻址址是是由由DPDP值值确确定定是是512512页页中中的哪一页,由的哪一页,由dmaddmad确定是该页中的哪一个单元。确定是该页中的哪一个单元。7 7位位dmaddmad范范围围是是从从0 0 127127,每每页页有有128128个个可可以以访访问问的单元。的单元。SPSP可可以以指指向向存存储
9、储器器中中的的任任意意一一个个地地址址。dmaddmad可可以以指指向向当当前前页页中中具具体体的的单单元元,从从而而允允许许访访问问存存储储器器任意基地址中的连续的任意基地址中的连续的128128个单元个单元 第15页/共157页16可以在不改变DP或SP的情况下,随机地寻址128个存储单元中的任何一个单元。RSBX CPLLD#x,DPLD u,A ADD v,A=SSBX CPL LD X1,A ADD Y2,A 举例特点用途主要用于要求运算速度较快的场合第16页/共157页17 例例1 1:数数据据存存储储器器存存储储数数据据如如图图所所示示,采采用用数数据据页指针页指针DPDP直接寻
10、址,完成直接寻址,完成x x,y y单元的两个数据求和。单元的两个数据求和。RSBX CPLRSBX CPL数据存储器数据存储器地址地址数据数据01800001.X X:01FF1000y y:02000500.第第3 3页页第第4 4页页LD#3,DPLD#3,DPLD x,ALD x,AADD y,AADD y,A;CPLCPL复位复位;立即数立即数3 3赋给赋给DPDP;x x单元的数据送入单元的数据送入A A;完成完成x x和和y y单元的数单元的数 据相加据相加DPdmaLD#3,DPLD#3,DPLD#3,DPLD#3,DP000000011LD x,ALD x,ALD x,ALD
11、 x,A1111111操作码01111111机器码x 00000001111111110 1 F Fx01FF01FF10001000A00 0000 100001FF01FF10001000ADD y,AADD y,A操作码00000000机器码0000000y 00000001100000001 8 0 0y01800180000100010180H0001+10010180018000010001100100 0000ADD y,AADD y,A00 0000 1001A结果结果ADD y,AADD y,ALD x,ALD x,ALD#3,DPLD#3,DPRSBX CPLRSBX CP
12、LADD y,AADD y,ALD#4,DPLD#4,DPLD#4,DPLD#4,DPRSBX CPLRSBX CPLLD#3,DPLD#3,DPDP000000011LD x,ALD x,Adma11111110 1 F FxA00 0000 1000LD#4,DPLD#4,DPDP000000100ADD y,AADD y,Adma00000000 2 0 0y05000200H05000200H+005100 0000 00 0000 150000 0000 1500A结果第17页/共157页18 例例2 2:数数据据存存储储器器存存储储数数据据如如图图所所示示,利利用用堆堆栈栈指针指针
13、S SP P直接寻址,求堆栈中距栈顶两个数直接寻址,求堆栈中距栈顶两个数x x,y y的和。的和。SSBX CPLSSBX CPL数据存储器数据存储器002001000050A000.LD 1,ALD 1,AADD 2,AADD 2,A;CPLCPL置位置位;x x单元的数据送入单元的数据送入A A;完成完成x x和和y y单元的数单元的数 据相加据相加12SPSPx x:y y:SPSPx x:y y:0000001000000000SPSP0000001dmaxdmax0000010dmaydmay0 2 0 1X X地址地址0 2 0 2y y地址地址SSBX CPLSSBX CPLLD
14、 1,ALD 1,Ax x:0200H0200H1=0201H1=0201H01000100A00 0000 010000 0000 010001000100 x x:ADD 2,AADD 2,A2=0202H2=0202Hy y:005000500202H0202H005000500 000 000000 00005 51 10 0+y y:0050005000 0000 015000 0000 015000 0000 0150A执行结果第18页/共157页195间接寻址方法特点根据辅助寄存器(AR0AR7)给出的16位地址进行寻址。寻址范围为64K 能在一个指令中访问两个数据存储器单元两个
15、独立的存储器单元读数据读一个、写另一个存储器单元读写两个连续的存储器单元 第19页/共157页20(1)单操作数寻址 LD*AR1,B15 8 7 6 3 2 0 操作码操作码I 1MODARF指令的指令的8 8位操作码位操作码指令的标识符指令的标识符表示指令为间接寻址表示指令为间接寻址4 4位的方式域位的方式域 用来定义间接寻址的类型用来定义间接寻址的类型3 3位辅助寄存器域位辅助寄存器域 用来定义所使用的辅助寄存器用来定义所使用的辅助寄存器第20页/共157页21单操作数间接寻址形式单操作数间接寻址形式MOD域域 操作句法操作句法功功 能能说说 明明0000*ARx 地址地址=ARxARx
16、ARx的内容为数据存储器地址的内容为数据存储器地址0001*ARx-地址地址=ARxARx ARx ARx=ARx-1ARx-1 寻址结束后,寻址结束后,ARx地址减地址减1。注注20010*ARx+地址地址=ARxARx ARx ARx=ARx+1ARx+1 寻址结束后,寻址结束后,ARx地址加地址加1。注注10011*+ARx ARxARx=ARx+1ARx+1 地址地址=ARxARx ARx中的地址加中的地址加1后,再寻址。后,再寻址。注注1、注注2、注注3 0100*ARx-0B 地址地址=ARx ARx ARx ARx=B(ARx-AR0)B(ARx-AR0)寻址结束后,用位倒序进位
17、的方法从寻址结束后,用位倒序进位的方法从 ARx中减去中减去AR0的值。的值。注1:寻址16位字时增/减量为1,32位字时增/减量为2。注2:这种方式只能用写操作指令。注3:这种方式不允许对存储器映像寄存器寻址。第21页/共157页22单操作数间接寻址形式单操作数间接寻址形式MOD域域 操作句法操作句法功功 能能说说 明明0101*ARx-0 地址地址=ARx ARx ARx ARx=ARx-AR0ARx-AR0寻址结束后寻址结束后,从从ARx中减去中减去AR0的值。的值。0110 *ARx+0 地址地址=ARx ARx=ARx+AR0 寻址结束后,把寻址结束后,把AR0加到加到ARx中。中。
18、0111 *ARx+0B 地址地址=ARxARx ARx ARx=B(ARx+AR0)B(ARx+AR0)寻址结束后,用位倒序进位的寻址结束后,用位倒序进位的方法将方法将 AR0加到加到ARx中中1000 *ARx-%地址地址=ARxARx ARx ARx=Circ(ARx-1)Circ(ARx-1)寻址结束后,寻址结束后,ARx中的地址值中的地址值按循环减的方法减按循环减的方法减1。注注1 1001 *ARx-0%地址地址=ARxARx ARx ARx=Circ(ARx-AR0)Circ(ARx-AR0)寻址结束后,按循环减的方法寻址结束后,按循环减的方法从从ARx中减去中减去AR0中的值中
19、的值 注1:寻址16位字时增/减量为1,32位字时增/减量为2。第22页/共157页23单操作数间接寻址形式单操作数间接寻址形式 MOD域域 操作句法操作句法功功 能能说说 明明1010 *ARx+%地址地址=ARxARx ARx ARx=Circ(ARx+1)Circ(ARx+1)寻址结束后,寻址结束后,ARx中的地址值中的地址值按循环加的方法加按循环加的方法加1。注注1 1011 *ARx+0%地址地址=ARx=ARx ARx=Circ(ARx+AR0)ARx=Circ(ARx+AR0)寻址结束后,按循环加的方法寻址结束后,按循环加的方法将将AR0中的值加到中的值加到ARx。1100 *A
20、Rx(lk)地址地址=ARx+lk=ARx+lk ARx=ARx ARx=ARx以以ARx与与16位数之和作为地址,位数之和作为地址,寻址结束后,寻址结束后,ARx中的值不变。中的值不变。1101*+ARx(lk)地址地址=ARx+lkARx+lk ARxARx=ARx+lkARx+lk将一个将一个16位带符号数加到位带符号数加到ARx,然后寻址。,然后寻址。注注31110*ARx(lk)%地址地址=Circ(ARx+lk)Circ(ARx+lk)ARxARx=Circ(ARx+lk)Circ(ARx+lk)将一个将一个16位带符号数按循环加位带符号数按循环加的方法加至的方法加至ARx,然后再
21、寻址,然后再寻址1111*(lk)地址地址=(lk)(lk)利用利用16位无符号数作为地址位无符号数作为地址,寻址数据存储器寻址数据存储器注3:这种方式不允许对存储器映像寄存器寻址。第23页/共157页241)循环寻址 许多算法,如卷积,相关和FIR滤波等,都需要在存储器中实现一个循环缓冲器。在这些算法中,一个循环缓冲器就是一个包含了最近的数据的滑动窗口。当新的数据来到时,缓冲器就会覆盖最早的数据。循环缓冲器实现的关键是循环寻址的实现。C54x间接寻址中提供了循环寻址的方式,以%表示。第24页/共157页25循环寻址的有效地址计算 循环缓冲区的参数主要包括:长度寄存器循环缓冲区的参数主要包括:
22、长度寄存器(BKBK)、有效基地址()、有效基地址(EFBEFB)、尾地址()、尾地址(EOBEOB)。)。uBK:BK:定义了循环缓冲区的大小定义了循环缓冲区的大小R R。大小为。大小为R R的循环缓的循环缓冲器其地址要始于最低冲器其地址要始于最低N N位为零的地址。并且位为零的地址。并且R R要满要满足下面的条件:足下面的条件:2 2N NRRuEFBEFB:循环缓冲器的有效基地址(:循环缓冲器的有效基地址(EFBEFB)就是用户)就是用户选定的辅助寄存器(选定的辅助寄存器(ARxARx)的低)的低N N位置位置 0 0后所得到的后所得到的值。值。uEOBEOB:是通过用是通过用BKBK的
23、低的低N N位代替位代替ARxARx的低的低N N位得到。位得到。例如:缓冲区长度例如:缓冲区长度R=32R=32,若若2 2N N 3232,则则N=6N=6。缓冲区开始的地址:缓冲区开始的地址:xxxx xxxx xx00 0000 xxxx xxxx xx00 0000B B 缓冲区长度缓冲区长度R=32R=32装入装入循环缓冲长度寄存器循环缓冲长度寄存器BKBK中。中。第25页/共157页26第26页/共157页27 循环缓冲器的指示index就是ARx的低N位,步长step就是加到辅助寄存器,或从辅助寄存器中减去的值。循环寻址的算法如下:if0index+stepBK;index=i
24、ndex+stepelseifindex+stepBK;index=index+stepBKelseifindex+step0;index=index+step+BK第27页/共157页28 循环寻址要遵循的原则循环寻址要遵循的原则 :循环缓冲区的长度循环缓冲区的长度R R小于小于2 2N N,且地址从一个低,且地址从一个低N N位为位为0 0的地址开始;的地址开始;步长小于或等于循环缓冲区的长度;步长小于或等于循环缓冲区的长度;所使用的辅助寄存器必须指向缓冲区单元。所使用的辅助寄存器必须指向缓冲区单元。第28页/共157页292)位倒序寻址 用于快速傅氏变换算法用于快速傅氏变换算法FFTFF
25、T。位位码码顺顺序序寻寻址址:按按照照二二进进制制递递增增规规律律寻寻址址。如:如:00000000,00010001,00100010,00110011,11111111。如:如:00000000,10001000,01000100,11001100,11111111。位位码码倒倒序序寻寻址址:根根据据二二进进制制递递增增码码,按按其其位位码倒序的规律进行寻址。码倒序的规律进行寻址。第29页/共157页30 WN0WN0WN0W0N-1-1-1-1X(0)X(1)X(0)X(1)X(0)X(1)X(0)X(1)33445566WN0WN2WN0WN2-1-1-1-1X(0)X(1)X(2)X
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 原理 应用 第三
限制150内