版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Dsp寻址方式作业学号:班级:姓名:目录1、 立即数寻址32、绝对地址寻址31.1 数据存储器地址(dmad)寻址:31.2 程序存储器地址(pmad)寻址:31.3 I/O端口地址(PA)寻址:43、累加器寻址54、直接寻址55、 间接寻址65.1 单操作数寻址65.2 循环寻址65.3 位倒序寻址75.4 双操彳乍数(Dual-OperandMemory)寻址86、存储器映像寄存器寻址87、堆栈寻址9总结9TMS320C54x系列DSP的存储空间包括程序存储空间、数据存储空间和I/O空间。每个空间都有64K字的大小。因此,如果采用直接的寻址方式则需16位的地址。为了节省程序存储空间和提高程
2、序的运行速度,经常采用间接寻址等方法以便使指令字节数减少。1、立即数寻址概念:在指令中已经包含有执行指令所需要的操作数(主要用于寄存器或者存储器的初始化)在立即寻址方式中,指令里包含了立即操作数。立即寻址方式中的立即数有两种数值形式,3、5、8、9位短立即数和16位的长立即数,它们在指令中分别编码为单字指令和双字指令。举例:LD#0AH,ASMRPT#99HLD#020H,DPLD#0FE00H,A;5-bit(EDOA);8-bit(EC99);9-bit(EA20);16-bit(F020FE00)需要注意的是,立即数前面加需“#”以区别于地址表示方法,不得遗漏。LD#0FE00H,A,表
3、示将立即数FE00H送入累加器A,遗漏#,则变成把地址为0FE00H单元的内容送入累加器A(1000FE00)。2、绝对地址寻址绝对寻址方式的指令中包含有所寻操作数的16位单元地址。由于寻址16位绝对地址,故绝对寻址指令长度至少为2个字。有四种绝对寻址指令:2.1 数据存储器地址(dmad)寻址:概念:是用一个符号或者一个数来确顶数据空间的一个地址。格式:MVDKSmem,dmadMVDMdmad,MMRMVKDdmad,SmemMVMDMMR,dmad举例:MVDK,DATA,*AR5说明:DATA信号是一个符号常数,代表一个数据的存储单元的地址。2.2 程序存储器地址(pmad)寻址:概念
4、:程序存储器寻址由程序地址产生逻辑(PAGEN)完成。预取指阶段,PAGEN通过程序计数指针PC将指令代码、参数表等所在的程序存储器地址放在PAB上,进而从程序存储器相应的位置取出指令代码。如果程序顺序执行,即程序地址连续,PC值将自动增加,指向下一条指令的地址;如果程序执行过程中有跳转、返回、中断或循环操作,程序地址将不连续,这时PC值就要根据具体情况相应改变了。程序计数指针PC是一个16位的计数器,PC中所加载的16位程序地址与DSP执行的操作有关。格式:FIRSXmem,Ymem,pmadMVDPSmem,pmadMACPSmem,pmad,srcMVPDpmad,SmemMVPD,TA
5、BLE,*AR7-说明:将程序存储器编号为TABLE地址单元中的数据传送到有AR7寄存器所指向的数据存储器单元中,且AR7减一。这里的TABLE是一个地址标号,代表一个程序存储单元的地址。程序存储器寻址基本上和数据存储器寻址一样,区别仅在于空间不同。2.3 I/O端口地址(PA)寻址:概念:端口(PA)寻址使用一个符号或者一个16位数来确定I/O空间存储器中的一个地址,实现对I/O设备的读写。格式:PORTRPA,SmemPORTWSmem,举例:PORTR,FIFO,*AR5PORTW,*AR2,BOFO说明:第一条指令表示从FIFO端口读入一个数据,将其存放到有AR5据存期所指向的数据存储
6、器单元中。这里的FIFO和BOFO是I/O端口地址的标号。PA长立即数*(lk)寻址:概念:*(lk)寻址是用一个符号或者一个常数来确定数据存储器中的一个地址。适用于支持单数据操作数的的指令。Lk是一个16位数或者一个符号,它代表数据存储器中的一个的单元。举例:LD*(BUFFER),AMVKDDATA,*AR1;数据存储器寻址MVPDTABLE,*AR2;程序存储器寻址PORTR0F2F0H,*AR5;端口寻址说明:第一条指令时将BUFFER符号手指的数据存储单元中的数据传送到累加器A,这里的BUFFER是一个16位符号常数。第二条指令表示将数据存储器中以DATA符号为地址单元中的数据传送到
7、由辅助寄存器ARl所指向的数据存储单元中去。DATA代表数据存储单元的地址dmado第三条指令表示将程序存储器中以TABLE符号为地址单元中的数据传送到由辅助寄存器AR2所指向的数据存储单元中去。TABLE代表程序存储单元的地址pmado第四条指令表示将地址为0F2F0H的端口中的数据传送到由辅助寄存器AR5所指向的数据存储单元中去。3、累加器寻址概念:累加器寻址是利用累加器A的低16位(AL内容)作为地址对程序存储器中的数据进行访问,这种寻址方式常用来寻址存放数据的程序存储空间。格式:只有两条指令可用于累加器寻址方式。READASmemWRITASmem说明:第一条指令意为将累加器A(AL)
8、的内容作为地址寻找程序存储器中的数据,传送到Smem指定的数据存储单元中。第二条指令意为将Smem指定的数据存储单元中的数据(1个字),写到累加器A(AL)指定地址的程序存储器中去。提示:在C54x芯片中程序存储器单元有累加器A的低16为确定,单C548以上的芯片有23条地址线,它的程序存储器单元的就有累加器的第23为确定。4、直接寻址概念:直接寻址指令中包含有数据存储器地址的低7位(dma)。以dma为偏移地址,与基地址(数据页指针DP或堆栈指针SP洪同构成16位数据存储器的物理地址。数据指针(DP),当ST1中的CPL位二0堆栈指针(SP),当ST1中的CPL位二1CPL=0,选择数据页指
9、针DP,用DP中的9位作为高位与指令中指定的7位作为低位,共同构成16位数据存储单元的地址。CPL=1,选择堆栈指针SP,用SP的值与指令中指定的7位正偏移量相加,构成16位数据存储单元的地址。利用这种寻址方式,可以在不改变数据页指针DP和堆栈指针SP内容的情况下,随机地寻址128个存储单元中的任何一个单元。直接寻址的优点是寻址速度快且为单字指令。举例:ADDDAMPLE,BRSBXCPL;LD#2,DPLD60H,16,A说明:第一个指令表示:要将地址为SAMPLE的存储器单元内容加到累加器B中,此时地址SAMPLE的低7为存放在指令代码的低7位,高9位有DP或SP提供。第二条指令是将CPL
10、清零。第三条指令是将DP指向第二页。第四条指令是将第二页的60H单元内容装入A高16位。5、间接寻址间接寻址根据8个辅助寄存器AR0-AR7中定义的任一寄存器给出的16位地址寻址。每一个寄存器都可以用来寻址64K字数数据存储空间中的任何一个单元。间接寻址很灵活,不仅能从存储器中读或写一个单16-bit数据操作数,而且能在一条指令中访问两个数据存储器单元(即从两个独立的存储器单元读数据,或读一个存储器单元同时写另一个存储器单元,或读写两个连续的存储器单元)。VC5402有两个辅助寄存器算术运算单元ARAU0和ARAU1,它们与8个辅肋辅助寄存器一起,可以进行无符号数算术运算,实现16种单操作数间
11、接寻址方式。5.1单操作数寻址概念:这种寻址是一个指令中有一个存储器的操作数。举例:LD*AR2+,A说明:(1)表示将有AR2寄存器内容所执行的数据存储器单元中的数据存储器单元中的数据传送到累加器A中,然后AR2中的地址加1.。(2)间接寻址时:间址寄存器前加*号“十”号在前,修改生成新值后再寻址“十”号在后,寻址后再修改生成新值有0符号,与AR0有关有B符号,位倒序寻址有符号,循环寻址5.2循环寻址概念:循环寻址用表示,器辅助寄存器使用规则与其他寻址方式相同。在卷积、相关、FIR滤波算法中,要求在存储器中设置一个缓冲区作为滑动窗,保存最新一批数据。循环寻址过程中,不断有新的数据覆盖旧的数据
12、,从而实现循环缓冲区寻址。循环缓冲区长度BK决定缓冲区的大小,循环寻址时首先应将缓冲区的长度值R加载至循环缓冲区长度寄存器BK。STM#lk,BK设置循环缓冲区长度循环缓冲区从N位的地址边界(N位0)开始,R<2N。若R=40,则N=6,开始地址为:xxxxxxxxXX000000o循环寻址时用一个ARx指向缓冲区算法:if0<index+step<BK:index=index+step;elseifindex+step>BK:index=index+step-BK;elseifindex+step<。index=index+step+BK;其中,index是AR
13、x的低N位(缓冲区偏移地址)。举例:256点16阶FIR滤波器.sect“fir-prog”STM#255,BRC块重复计数器重复256次RPTBDfir_filter_loopSTM#16,BK;FIR循环缓冲区大小。LD*AR7+,A;装入输入值STLA,*AR4+%;用新值覆盖旧值RPTZA,#16MAC*AR4+0%,*AR3+0%,A;滤波STHA,*AR5+;覆盖旧的缓冲区的值说明:(1)循环缓冲区的长度R小于2N,且地址从一个低N位为0的地址开始。(2)补偿小于或等于循环缓冲区的长度。(3)所使用的辅助寄存器必须指向缓冲区单元。5.3位倒序寻址概念:位倒序寻址主要用于FFT运算,
14、可以提高FFT算法的执行速度和使用存储器的效率。倒序及其进位(有B符号)位倒序表示:存储器单元地址0000变换结果位码倒序位码倒序结果1X(0)0000X(0)0001X(8)1000X(1)0010_X(4)0100X(2),0011X(12)1100X(3)0100X(2)0010X(4)0101X(10)1010X(5)0110X(6)0110X(6)0111X(14)1110X(7)1000rx0001X(8)1001X(9)1001X(9)1010X(5)0101X(10)1011X(13)1101X(11)1100X0011X(12)1101X(11)1011X(13)1110X(
15、7)0111X(14)1111X(15)1111X(15)位倒序进位:进位不是加到左边一位,而是加到右边的那位。例如:进位加到左边(正序)进位加到右边(倒序)11001100+1000+1000101000010举例:16点蝶形FFT运算中,将FFT长度的一半(8)存放AR0中,如果AR2指向X(0)首址2000H,则执行下面2条程序后将以倒序地址:2000H,2008H,2004H,200CH,2002H,2007H,200FH向PA口输出。RPT#15PORTW*AR2+0B,PA说明:第一条说明将下一条语句循环执行15+1次;第二条第二条语句说明PA为外设端口,AR0以倒序方式加入。5.
16、4双操作数(Dual-OperandMemory)寻址概念:这种寻址方式用于同时完成两次读操作或完成一次读操作和一次并行存储操作的指令。这些指令只用于间接寻址方式,而且指令长度均为一个字长。这种寻址方式对于加减运算、乘法运算、乘法累加运算以及对应于DSP的其他一些特殊数学运算是相当方便的。格式作码XmodXarYmodYar说明:Xmod定义了用于访问Xmem操作数间接寻址方式的类型,Xar确定了包含Xmem地址的辅助寄存器。Ymod定义了用于访问Ymem操作数的间接寻址方式的类型。Yar确定了包含Ymem的辅助寄存器我们分别用Xmem和Ymem来代表这两个数据存储器
17、操作数。XXmem是一个读操作数,但存储指令可把Xmem变为写操作数;冰Ymem在两个读操作中是读操作数,在一读一写中是写操作数。如果源操作数和目的操作数指向相同的地址,执行的顺序是先从该地址读取数据,后写入数据。如果一个双操作数指令通过不同的寻址模式指向同一个辅助寄存器,那么以Xmod域的寻址模式为准。6、存储器映像寄存器寻址概念:存储器映像寄存器寻址主要用于不改变DP、SP的情况下,访问MMR中的内容。因此,这种寻址方式对MMR执行写操作开销小。存储器映像寄存器MMR寻址有两种方法(1)采用直接寻址方式,高9位数据存储器地址置0(无论DP、SP为何值),利用指令中的低7位地址直接访问MMR
18、0(2)采用间接寻址方式,高9位数据存储器地址置0(无论DP、SP为何值),按照当前辅助寄存器的低7位地址访问MMR0此种方式访问MMR,寻址操作完成后,辅助寄存器的高9位被强迫置成0o存储器映射寄存器寻址用来访问存储器映射寄存器而不影响当前数据页指针(DP)或堆栈指针(SP)的值。直接寻址中利用操作数中的低7位访问MMR;间接寻址中利用ARx访问MMR时ARx高9位被置0。格式:只有8条指令能使用存储器映射寄存器寻址:LDMMMR,dstMVDMdmad,MMRMVMDMMR,dmadMVMMMMRx,MMRyPOPMMMRPSHMMMRSTLMsrc,MMRSTM#lk,MMR说明:第一个将MMR内容装入累加器。第二个将数据存储器单元内容装入MMR第三个将MMR的内容录入数据存储单元第四个MMRx,MMRy只能是AR0AR7第五个将SP制定单元内容MMR,然后SP=SP+1第六个将MMR内容给SP制定单元,然后SP=SP-1第七个将累加器的低16位MMR第八个将一个立即数给MMR7、堆栈寻址概念:C54x的堆
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江衢州市第二人民医院招聘2人考试备考试题及答案详解
- 职业卫生技术服务专业技术人员考试(职业卫生检测)模拟题库及答案(海南省白沙县2026年)
- 2026浙江宁波市鄞州区疾病预防控制中心招聘编外驾驶员1人考试备考试题及答案详解
- 2025年呼伦贝尔市海拉尔区社区工作者招聘笔试试题及答案详解
- 2026年佛山市禅城区事业编单位人员招聘笔试参考试题及答案详解
- 2026年漯河经开区就业见习岗位招聘143名考试备考题库及答案详解
- 2026云台山风景名胜区区属国企招聘高层管理人员及工作人员招聘岗位核销考试备考试题及答案详解
- 2026广东江门海关后勤管理中心招聘3人笔试模拟试题及答案详解
- 2026安徽池州市东至县机关事业单位青年就业见习岗位笔试模拟试题及答案详解
- 云南现代职业技术学院单招职业技能考试题库及答案
- 黄水院水工建筑物基础课件第6章 土石坝
- TCSTM00843-2022航空发动机紧固件用GH4738合金冷拉棒材
- 2025至2030年中国眩晕用药行业市场发展模式及投资前景分析报告
- 2024年内蒙古呼伦贝尔农垦集团有限公司招聘真题
- DB-T29-328-2024 天津市智慧工地建设技术标准
- T-ZAMA 1001-2024 硅碳负极材料用多孔碳
- 保安廉洁培训
- DL∕T 1396-2014 水电建设项目文件收集与档案整 理规范
- 公司境外税收管理办法
- 甘肃省张掖市甘州区2023-2024学年八下物理期末联考试题及答案解析
- 《职业卫生》模拟考试题与参考答案
评论
0/150
提交评论