资源描述:
《tms320c55x dsp原理及应用_lec3寻址方式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三讲C55寻址方式1.寻址方式概述2.绝对寻址方式(AbsoluteAddressingModes)3.直接寻址方式(DirectAddressingModes)4.间接寻址方式(IndirectAddressingModes)参考文献TMS320C55xDSPCPUReferenceGuideTMS320C55xDSPMnemonicInstructionSetReferenceGuideC55x寻址方式概述Threetypesofaddressingmodestoenableaccesstodatamemory,memory-mappedregisters,re
2、gisterbits,andI/OspaceC55x寻址方式概述寻址模式最终表现在指令的操作数中绝对寻址模式绝对寻寻址方法助记符指令操作数访问对象址模式k16将7位的DPH和1*abs16(#k16)数据空间(含6位无符号常数k1MMR)中的6级联形成23位某一地址单元地址k23指令包含的23位*(#k23)常数k23作为地址I/O指令包含的16位port(#k16)I/O空间的常数k16作为地址某一地址单元(1)k16AbsoluteAddressingCPUAUnitRegister之数据页寄存器16比特的DP和7比特的DPH,是MMRCPU将DP和DPH级联,构成扩展数
3、据页寄存器XDP,它不是MMRDP、DPH、XDP均可以通过专用指令访问(1)k16AbsoluteAddressing(1)k16AbsoluteAddressing(2)k23AbsoluteAddressing再例x.usect"vars",4y.usect"vars",1…MOVAC0,*(#y)(2)k23AbsoluteAddressing(3)I/OAbsoluteAddressing直接寻址模式直接寻址助记符指令操作数寻址对象DP@Daddr数据存储器mmap(@Daddr)MMRSP*SP(offset)数据存储器中的堆栈Register@bitoffsetAC
4、0–AC3,AR0–AR7,bitT0–T3中的1位或连续两位PDPport(@Poffset)I/ODP和SP直接寻址方式互斥,由状态寄存器ST1-55第14比特CPL(Compilermodebit)决定,CPL=0时DP,CPL=1时SP其他两种则与之无关(1)DPDirectAddressing用DPH和DP合并的扩展数据页指针寻址存储空间和存储器映射寄存器。DPH指明128个主数据页中的哪一页;DP指定在该主数据页内长度为128字的局部数据页的起始地址,该起始地址可以是主数据页内的任何地址;由汇编器计算的7位偏移量Doffset;操作数格式为@DaddrDPdirec
5、taddressingtoaccessdatamemoryDPdirectaddressingtoaccessdatamemory当CPU存取数据存储器长字时,存取地址指的是32位数据的高16位(MSW)地址,若MSW是偶地址,则LSW地址加1,否则减1DPdirectaddressingtoaccessdatamemoryx.usect"vars",4程序接左框,…MOV#0,AC0…MOV@0,AC0AMOV#x,XDPADD@3,AC0.dpxADD@1,AC0MOV@x,AC0ADD@2,AC0ADD@(x+3),AC0以上语句和左框完全等效,@ADD@(x+1),AC0指
6、定了偏移量。实际上,编译ADD@(x+2),AC0器对左框与右框语句的编译结果完全一致。DPdirectaddressingtoaccessMMRDPdirectaddressingtoaccessMMRAC0L在数据空间的映射地址为000008hmmap()限定符强制数据地址产生单元在DPH=0,CPL=0,DP=0的条件下工作(2)SPDirectAddressingCPUAUnitRegister之堆栈指针寄存器(2)SPDirectAddressing7比特的SPH指明128个主数据页中的哪一页;低16比特由SP+指令中包含的7位偏移量组成.(2)SPDirectA
7、ddressingBSETCPL….CPL_ONBSETCPL.CPL_ONMOV#01H,SPHAMOV#x,XSPMOV#2000H,SPMOV#0,AC0MOV@2,T0;将(012002H)->T0MOV*SP(0),AC0MOV@12,AC1;将(01200CH)->AC1ADD*SP(3),AC0以上是从网上摘抄的一段,ccs仿真ADD*SP(1),AC0表明是错误的。改正举例如右:ADD*SP(2),AC0(3)Register-BitDir