DSP 第5讲 数据寻址.pptVIP

  • 33
  • 0
  • 约8.42千字
  • 约 47页
  • 2019-12-02 发布于湖北
  • 举报
第5讲 数据寻址 概述 指令的寻址方式是指当硬件执行指令时,寻找指令所指定的参与运算的操作数的方法。 C54x DSP提供了七种基本的寻址方式: (1)立即寻址:使用立即数进行寻址。 (2)绝对寻址:使用16位的地址寻址存储单元。 (3)累加器寻址:使用累加器中的内容作为地址,访问程序存储器单元 (4)直接寻址:使用指令中7位数作为相对于DP或SP的偏移值进行编码。偏移值加上 DP或SP确定存储器中实际寻址的地址。 (5)间接寻址:使用辅助寄存器访问存储器。 (6)存储器映射寄存器寻址:即不影响当前的DP和SP值,直接修改存储器映射寄存器,通过寻址存储器映射寄存器实现寻址。 (7)堆栈寻址:C54x DSP的堆栈从高地址向低地址变化,使用16位堆栈指针SP管理堆栈,利用SP直接完成寻址操作。 概述 常用的寻址缩写 §5.1 立即寻址 立即寻址:使用立即数进行寻址。 立即数的两种类型: (1) 短立即数:长度为3、5、8或9位?对应单字指令 (2) 长立即数:长度为16位?对应双字指令 表示方式:#立即数 C54x DSP使用不同立即数的指令举例 §5.1 立即寻址 §5.2 绝对寻址 绝对寻址:使用16位的地址寻址存储单元 语法:一个符号或一个数字 C54x DSP提供了4种绝对寻址方法: (1)数据存储器地址(dmad)寻址 (2)程序存储器地址(pmad)寻址 (3)端口地址(PA)寻址 (4)*(lk)寻址:使用一个指定数据空间地址的值来寻址,支持所有的单寻址存储器(Smem)操作数的指令。 MVDK *(2000h),2004h §5.2 绝对寻址—续 (1)数据存储器地址(dmad)寻址:使用一个指定数据空间的一个地址的值来寻址。 MVDK Smem,dmad MVKD dmad,Smem MVDM dmad,MMR MVMD MMR,dmad §5.2 绝对寻址—续 §5.2 绝对寻址—续 §5.2 绝对寻址—续 (2)程序存储器地址(pmad)寻址:使用一个指定程序空间的一个地址的值来寻址 FIRS Xmem,Ymem,pmad MACD Smem,pmad,src ;乘法指令 MACP Smem,pmad,src MVDP Smem,pmad MVPD pmad,Smem §5.2 绝对寻址—续 §5.2 绝对寻址—续 §5.2 绝对寻址—续 §5.2 绝对寻址—续 §5.2 绝对寻址—续 §5.2 绝对寻址—续 (3)端口地址寻址:使用指向I/O端口地址的值进行寻址 PORTR PA,Smem PORTW Smem,PA 注:PA:16位端口立即地址 §5.2 绝对寻址—续 §5.3 累加器寻址 累加器寻址:使用累加器的数值作为地址来访问程序存储器。 有两条专门的指令是使用累加器寻址方式: READA Smem:以累加器A中的内容为地址,从程序存储器中读出一个数并传送到由Smem所指定的数据存储单元中。 WRITA Smem:将Smem所指定的数据存储单元中的一个数,传送到由累加器A所指定的程序存储单元中。 §5.3 累加器寻址 §5.4 直接寻址 直接寻址是指在指令中包含数据存储器地址的低7位(dma)。以dma为偏移地址,与基地址(数据页指针DP或堆栈指针SP)一起构成16位数据存储器地址。 优点:不改变DP或SP内容的情况下,随机地寻址128字的存储单元 状态寄存器ST1的CPL位可以选择用来产生该地址的方式: (1)当CPL=0时,DP中的9位为高位与指令中指定的7位dma为低位构成16位数据存储单元的地址。 (组合) (2)当CPL=1时, SP中的9位为高位与指令中指定的7位dma为低位构成16位数据存储单元的地址。(相加) §5.4 直接寻址 §5.4 直接寻址 直接寻址的语法使用一个符号或一个数字指定偏移值。 DP由LD指令加载。如 LD #23,DP 直接寻址的指令书写格式为在变量前加一个@,或者用一个直接数dma来设定偏移地址。 x指向01FF;y指向0200 ;求(X)+(Y) §5.4 直接寻址 LD #3,DP ;设置当前页面为3 LD @x,A ;将x中的值加载到累加器A ADD @y,A ;将y中值加到累加器A 结果: §5.5 间接寻址 间接寻址:使用辅助寄存器(AR0~AR7)访问64K字的数据空间中任何地址单元。 单操作数寻址 MOD:4位修改位段,定义间接寻址的类型,共16种。 ARF:定义用于寻址的辅助寄存器,根据ST1的修正模式位(CMPT)的设置不同,ARF的定

文档评论(0)

1亿VIP精品文档

相关文档