数据寻址方式介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Copyright © 2003 Texas Instruments. All rights reserved.
绝对寻址
C54x DSP提供了4种绝对寻址方法: ☆ 数据存储器地址寻址——是用一个符号或一个数来确 定数据空间中的一个地址。 例: MVKD SAMPLE, *AR5 ☆ 程序存储器地址寻址——是用一个符号或一个具体的数来确 定程序存储器中的一个地址。 例: MVKD TABLE, *AR7 ☆ 端口地址寻址——是用一个符号或一个常数来确定外部I/O口 地址。 例: PORTR FIFO, *AR5 ☆ *(lk)寻址——是用一个符号或一个常数来确定数据存储器中 的一个地址。 例: LD *(BUFFER), A
Copyright © 2003 Texas Instruments. All rights reserved.
间接寻址续
单操作数寻址
Copyright © 2003 Texas Instruments. All rights reserved.
间接寻址续
双操作数寻址
双操作数寻址用于执行两个读或一个读和一个并行 存储的操作(由||表示)指令中。
TMS320C5000™ : 数据寻址方式分类
Copyright © 2003 Texas Instruments. All rights reserved.
数据寻址方式分类 数据寻址方式分类
C54x DSP提供了七种基本的数据寻址方式: ☆ 立即数寻址——指令中嵌有一个固定的数; ☆ 绝对地址寻址——指令中有一个固定的地址; ☆ 累加器寻址——按累加器内的地址去访问程序 存储器中的一个单元; ☆ 直接寻址——指令中的7bits是一个数据页内的 偏移地址,而所在的数据页由数据页指针DP或SP决 该偏移值加上DP或SP的值决定了在数据存储器中的 际地址;
Copyright © 2003 Texas Instruments. All rights reserved.
直接寻址
在直接寻址中,指令代码包含了数据存储器地址的低7 位,这7位作为偏移地址与数据页指针(DP)或堆栈指针 (SP)相结合共同形成16位的数据存储器实际地址。直接 寻址的语Baidu Nhomakorabea是用一个常数来确定偏移值: 例:ADD SAMPLE, B 代码格式
Copyright © 2003 Texas Instruments. All rights reserved.
数据寻址方式分类续 数据寻址方式分类续
☆ 间接寻址——按照辅助寄存器中的地址访问存 储器; ☆ 存储器映射寄存器寻址——修改存储器映射寄 存器中的值,而不影响当前的DP或SP的值; ☆ 堆栈寻址——把数据压入和弹出系统堆栈;
间接寻址续
Copyright © 2003 Texas Instruments. All rights reserved.
存储器映射寄存器寻址
存储器映射寄存器寻址用来修改存储器映射寄存器而不 影响当前数据页指针(DP)或堆栈指针(SP)的值。存储器 映射寄存器寻址可以在直接寻址和间接寻址方式下工作。 ☆ 采用直接寻址方式时,高9位数据存储器地址被置为0, 利用指令中的低7位地址访问MMR; ☆ 采样间接寻址方式时,高9位数据存储器地址被置为0, 按照当前辅助寄存器中的低7位地址访问MMR。 C54x DSP只有8条指令可以进行存储器映射寄存器寻址 操作: LDM / MVDM / MVMD / MVMM POPM / PSHM /STLM / STM
Copyright © 2003 Texas Instruments. All rights reserved.
直接寻址续
DP和SP都可以与dma偏移相结合产生实际地址。位于 状态寄存器ST1中的编译方式位(CPL)决定选择采样哪种 方式来产生实际地址。 CPL=0,dma域与9位的DP域相结合形成16位的数据存 储器地址。 CPL=1,dma域加上(正偏移)SP的值形成16位的数 据存储器地址。 DP的范围是0~511页,每页128个单元。 SP可指向存储器中的任意一个地址。
Copyright © 2003 Texas Instruments. All rights reserved.
立即数寻址
在立即寻址方式中,指令语法可以使用两种类型的立即数: ☆ 长度为3、5、8或9位的短立即数; ☆ 长度为16位的长立即数; 立即数值可以按单字或双字指令进行编码,长度为3、5、 8或9位的短立即数编码到单字指令,长度为16位的长立即数 编码到双字指令。 在立即寻址方式的指令中,数字前面加一个#号,表示 一个立即数。 例: LD #80h,A
Copyright © 2003 Texas Instruments. All rights reserved.
Copyright © 2003 Texas Instruments. All rights reserved.
直接寻址续
Copyright © 2003 Texas Instruments. All rights reserved.
间接寻址
在间接寻址中,64K数据空间任意单元都可以通过一个 辅助寄存器中的16位地址进行访问, C54x DSP有8个16位 的辅助寄存器(AR0~AR7)两个辅助寄存器算术单元 (ARAU0~1),根据辅助寄存器的内容进行操作,完成无 符号的16位算术运算。间接寻址不仅能从存储器中读或写一 个单16位数据操作数,还能在一条指令中访问两个数据存储 器单元。 间接寻址中分:单操作数寻址和双操作数寻址。
Copyright © 2003 Texas Instruments. All rights reserved.
间接寻址续
Copyright © 2003 Texas Instruments. All rights reserved.
间接寻址续
Copyright © 2003 Texas Instruments. All rights reserved.
Copyright © 2003 Texas Instruments. All rights reserved.
堆栈寻址
当发生中断或子程序调用时,堆栈用来自动地保存程序 计数器中的数值。它可以用来保护现场或传送参数。遵循先 进后出原则。 C54x DSP有4条指令采用堆栈寻址方式: ☆ PSHD——将数据存储器中的一个数值压入堆栈 ☆ PSHM——将一个存储器映射寄存器中的值压入堆栈 ☆ POPD——从堆栈弹出一个数至数据存储单元 ☆ POPM——把一个存储器映射寄存器的值弹出堆栈 注:具体的寻址方式在后续的指令操作中有相应例程。
Copyright © 2003 Texas Instruments. All rights reserved.
累加器寻址
累加器寻址是用累加器中的数作为一个地址。这种寻址 方式可用来对存放数据的程序存储器寻址。共有两条指令可 以采样累加器寻址: READA Smem —— READA是把累加器A所确定的 程序存储器单元中的一个字,传送到单数据存储器(Smem) 操作数所确定的数据存储器单元中。 WRITA Smem —— WRITA是把 Smem 操作数所 确定的数据单元中的一个字,传送到累加器A确定的程序存 储器单元中去。 注: C54x DSP的程序存储器单元由累加器A的低16位 确定。
相关文档
最新文档