《(精品)第3章TMS320C54x的数据寻址方式.ppt》由会员分享,可在线阅读,更多相关《(精品)第3章TMS320C54x的数据寻址方式.ppt(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章章 TMS320C54x的数据寻址方式的数据寻址方式n3.1 立即寻址立即寻址n3.2 绝对寻址绝对寻址n3.3 累加器寻址累加器寻址n3.4 直接寻址直接寻址n3.5 间接寻址间接寻址n3.6 存储器映象寄存器寻址存储器映象寄存器寻址n3.7 堆栈寻址堆栈寻址TMS320C54x DSP提供以下提供以下7种基本数据寻址方式。种基本数据寻址方式。(1)立即数寻址)立即数寻址(2)绝对地址寻址)绝对地址寻址(3)累加器寻址)累加器寻址(4)直接寻址)直接寻址(5)间接寻址)间接寻址(6)存储器映射寄存器寻址)存储器映射寄存器寻址(7)堆栈寻址)堆栈寻址表3-1 寻址指令中用到的缩写符号及
2、其含义缩写符号含义Smem16位单数据存储器操作数Xmem在双操作数指令及某些单操作数指令中所用的16位双数据存储器操作数,从DB总线上读出Ymem在双操作数指令中所用的16位双数据存储器操作数,从CB总线上读出;在读同时并行写的指令中表示写操作数dmad16位立即数数据存储器地址(065535)pmad16位立即数程序存储器地址(065535)PA16位立即数I/O口地址(065535)src源累加器(A或B)dst目的累加器(A或B)lk16位长立即数3.1 立即寻址立即寻址n在立即寻址方式中,在立即寻址方式中,指令中包括了立即操作数。指令中包括了立即操作数。n一一条条指指令令中中可可对对
3、两两种种立立即即数数编编码码,一一种种是是短短立立即即数数(3、5、8或或9位位),另另一一种种是是16位位的的长长立立即即数数。短短立立即即数数指指令令编编码码为为一一个个字字长长,16位位立立即即数数的的指指令编码为两个字长。令编码为两个字长。n立立即即数数寻寻址址指指令令中中在在数数字字或或符符号号常常数数前前面面加加一一个个“”号,来表示立即数。号,来表示立即数。返回首页3.2 绝对寻址绝对寻址n3.2.1 数据存储器(数据存储器(dmad)寻址寻址n3.2.2 程序存储器(程序存储器(pmad)寻址寻址n3.2.3 端口地址(端口地址(PA)寻址寻址n3.2.4 长立即数长立即数*(
4、lk)寻址寻址返回首页3.2.1 数据存储器(数据存储器(dmad)寻址寻址n使用使用数据存储器寻址的指令有:数据存储器寻址的指令有:MVDK Smem,dmadMVDM dmad,MMR MVKD dmad,SmemMVMD MMR,dmadn数数据据存存储储器器寻寻址址使使用用符符号号(符符号号地地址址)或或一一个个表表示示16位位地地址址的的立立即即数数来来指指明明寻寻址址的的数数据据存存储储单单元元的的16位绝对地址。例如:位绝对地址。例如:MVKD SMAPLE,*AR5;返回本节3.2.2 程序存储器(程序存储器(pmad)寻址寻址n使用程序存储器寻址的指令有:使用程序存储器寻址的
5、指令有:nFIRS Xmem,Ymem,pmadMACD Smem,pmad,srcnMACP Smem,pmad,srcMVDP Smem,pmadnMVPD pmad,Smemn程程序序存存储储器器(pmad)寻寻址址使使用用符符号号(符符号号地地址址)或或一一个个表表示示16位位地地址址的的立立即即数数来来给给出出程程序序空空间间的的地地址址。例例如如,把把程程序序存存储储器器中中标标号号为为TABLE单单元元中中的的值值复复制制到到AR7所所指指定的数据存储器中去,指令可写为:定的数据存储器中去,指令可写为:nMVPD TABLE,*AR7;返回本节3.2.3 端口地址(端口地址(PA
6、)寻址寻址n使用端口地址的指令有:使用端口地址的指令有:PORTR PA,Smem PORTW Smem,PAn端端口口地地址址(PA)寻寻址址使使用用一一个个符符号号(符符号号地地址址)或或一一个个表表示示16位位地地址址的的立立即即数数来来给给出出外外部部I/O口口地地址。例如:址。例如:PORTR FIFO ,*AR5;返回本节3.2.4 长立即数长立即数*(lk)寻址寻址n长长立立即即数数*(lk)寻寻址址用用于于所所有有支支持持单单数数据据存存储储器器操作数(操作数(Smem)的指令。的指令。n长长立立即即数数*(lk)寻寻址址使使用用一一个个符符号号(符符号号地地址址)或或一一个个
7、表表示示16位位地地址址的的立立即即数数来来指指定定数数据据存存储储空空间间的的一一个个地地址址。例例如如,把把数数据据空空间间中中地地址址为为BUFFER单单元元中中的的数数据据传传送送到到累累加加器器A,指指令令可可写为:写为:LD *(BUFFER),),A返回本节3.3 累加器寻址累加器寻址n累累加加器器寻寻址址是是用用累累加加器器中中的的数数值值作作为为一一个个地地址址读读写写程程序序存存储储器器。共共有有两两条条指指令令可可以以采采用用累累加加器器寻寻址:址:READA Smem WRITA Smem返回首页3.4 直接寻址直接寻址n在在直直接接寻寻址址方方式式中中,指指令令中中包
8、包含含数数据据存存储储器器地地址址(dma)的的低低7位位,这这7位位dma作作为为地地址址偏偏移移量量,结结合合基基地地址址(由由数数据据页页指指针针DP或或堆堆栈栈指指针针SP给给出出)共共同同形形成成16位位的的数数据据存存储储器器地地址址。使使用用这这种种寻寻址址方方式式,用用户户可可在在不不改改变变DP或或SP的的情情况况下下,对对一一页页内内的的128个个存存储储单单元元随随机机寻寻址址。采采用用这这种种寻寻址址方方式式的的好好处处是是指指令令为为单单字字指指令令,数数据据存存储储器器地地址址(dma)的的低低7位位放放在在指指令令字字中中(如如图图3-1、3-2所示)。所示)。返
9、回首页图3-1 DP作为基地址的直接寻址方式图3-2 SP作为基地址的直接寻址方式返回本节3.5 间接寻址间接寻址n3.5.1 单操作数寻址单操作数寻址n3.5.2 双操作数寻址双操作数寻址返回首页3.5.1 单操作数寻址单操作数寻址n表表3-2列列出出了了单单数数据据存存储储器器(Smem)操操作作数数间间接接寻址类型。寻址类型。n特殊的间接寻址方式有:特殊的间接寻址方式有:1循环寻址循环寻址2倒序寻址(倒序寻址(如表如表3-3所示)所示)表3-2 单数据存储器操作数间接寻址类型表3-3 位倒序寻址返回本节3.5.2 双操作数寻址双操作数寻址n双双数数据据存存储储器器操操作作数数间间接接寻寻
10、址址类类型型为为*ARx、*ARx-、*ARx+、*ARx+0%。n所用辅助寄存器只能是所用辅助寄存器只能是AR2、AR3、AR4、AR5。n其其特特点点是是:占占用用程程序序空空间间小小,运运行行速速度度快快,在在一一个个机机器器周周期期内内通通过过两两个个16位位数数据据总总线线(C和和D)读读两两个个操操作作数数。指指令令中中Xmem表表示示从从DB总总线线上上读读出出的的16位位操操作作数数,Ymem表表示示从从CB总总线线上上读读出出的的16位操作数。位操作数。返回本节3.6 存储器映象寄存器寻址存储器映象寄存器寻址n存存储储器器映映象象寄寄存存器器寻寻址址用用于于修修改改存存储储器
11、器映映象象寄寄存存器器(MMR)中中的的内内容容,而而不不影影响响当当前前数数据据页页指指针针DP和和当当前前堆堆栈栈指指针针SP。由由于于这这种种方方式式不不需需要要修修改改DP和和SP,对对寄寄存存器器的的写写操操作作开开销销最最小小。存存储储器映象寄存器寻址可用于直接寻址和间接寻址。器映象寄存器寻址可用于直接寻址和间接寻址。返回首页3.7 堆栈寻址堆栈寻址n当当发发生生中中断断或或子子程程序序调调用用时时,系系统统堆堆栈栈自自动动保保存存PC值值。堆堆栈栈也也可可以以用用于于保保存存和和传传递递其其他他数数据据。堆堆栈栈由由高高地地址址向向低低地地址址增增长长,处处理理器器使使用用16位位的的存存储储器器映映象象寄寄存存器器堆堆栈栈指指针针(SP)对对堆堆栈栈进进行行寻址,寻址,SP总是指向压入堆栈的最后一个数据。总是指向压入堆栈的最后一个数据。返回首页n有有4条使用堆栈寻址的指令:条使用堆栈寻址的指令:nPSHD 把一个数据存储器数据压入堆栈;把一个数据存储器数据压入堆栈;nPSHM 把一个存储器映象寄存器中的值压入堆栈;把一个存储器映象寄存器中的值压入堆栈;nPOPD 从堆栈中弹出一个数据至数据存储器单元;从堆栈中弹出一个数据至数据存储器单元;nPOPM 从从堆堆栈栈中中弹弹出出一一个个数数据据至至存存储储器器映映象象寄寄存存器。器。返回本节
限制150内