第4讲-第3章TMS320C55x指令系统-寻址方式3.1_第1页
第4讲-第3章TMS320C55x指令系统-寻址方式3.1_第2页
第4讲-第3章TMS320C55x指令系统-寻址方式3.1_第3页
第4讲-第3章TMS320C55x指令系统-寻址方式3.1_第4页
第4讲-第3章TMS320C55x指令系统-寻址方式3.1_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第第3章章 TMS320C55x 的指令系统的指令系统(第第4讲讲)3.1 寻址方式寻址方式3.1.1 绝对寻址绝对寻址3.1.2 直接寻址直接寻址3.1.3 间接寻址间接寻址3.1.8 循环寻址循环寻址2表表3-1 指令中用到的语法元素指令中用到的语法元素语法元素语法元素含含 义义Smema single word (16 bits)来自来自数据空间数据空间、I/O空间空间或或存储器映射寄存器存储器映射寄存器的的16位位数据数据Lmema long word (32 bits)来自来自数据空间数据空间或或存储器映射寄存器存储器映射寄存器的的32位位数数据据Xmem和和Ymem同时来自同时来

2、自数据空间数据空间的两个的两个16位位数据数据Cmem来自内部来自内部数据空间数据空间的的16位位数据数据Baddr累加器累加器AC0AC3、辅助寄存器、辅助寄存器AR0AR7、暂存器暂存器T0T3的的位域位域,对位域的置,对位域的置1、清、清0、测试、求补等位运算用到该语法元素测试、求补等位运算用到该语法元素33.1.1 绝对寻址绝对寻址绝绝对对寻寻址址方方式式 含含 义义 k16 绝绝对对寻寻址址方方式式 该该寻寻址址方方式式使使用用 7 位位的的 DPH 和和 16 位位的的无无符符号号立立即即数数组组成成一一个个 23 位位的的数数据据空空间间地地址址,可可用用于于访访问问存存储储器器

3、空空间间和和存存储储器器映映射射寄寄存存器器 k23 绝绝对对寻寻址址方方式式 该该寻寻址址方方式式使使用用 23 位位的的无无符符号号立立即即数数作作为为数数据据空空间间地地址址,可可用用于于访访问问存存储储器器空空间间和和存存储储器器映映射射寄寄存存器器 I/O 绝绝对对寻寻址址方方式式 该该寻寻址址方方式式使使用用 16 位位无无符符号号立立即即数数作作为为 I/O 空空间间地地址址,可可用用于于寻寻址址 I/O 空空间间 表表3-2 3-2 绝对寻址方式绝对寻址方式4(1) k16绝对寻址绝对寻址 格式格式 *abs16(#k16) 其中:其中:k16是一个是一个16位位无符号无符号常

4、数常数 要点要点 常数常数k16被固定译码为被固定译码为2个字节扩充到指令中个字节扩充到指令中 采用这种寻址方式的指令采用这种寻址方式的指令不能不能与其它指令与其它指令并行执行并行执行5图图3-1 k16绝对寻址方式绝对寻址方式 6 例例3-1:数据存储器寻址,设:数据存储器寻址,设DPH=03h(1) MOV *abs16(#2002h),T2 ;#k16=2002h ;CPU从从03 2002h处读取数据装入处读取数据装入T2(2) MOV dbl(*abs16(#2002h), pair(T2);#k16=2002h, #k16+1=2003h ;CPU从从03 2002h和和03 20

5、03h处读取数据处读取数据,装入装入T2和和T37 例例3-8,*abs16(#k16) 用于用于MMR寻址寻址 MOV *abs16(#AR2), T2;DPH:k16=00 0012h(AR2的地址为的地址为00 0012h);CPU从从00 0012h处读取数据装入处读取数据装入T28(2) k23绝对寻址绝对寻址 格式格式 *(#k23) 其中:其中:k23是一个是一个无符号无符号的的23位位常数常数 要点要点 无符号常数无符号常数k23被固定译码为被固定译码为3个字节个字节 其中第三个字节的最高位被忽略其中第三个字节的最高位被忽略 不能与其它指令并行执行不能与其它指令并行执行 不能用

6、于重复指令中不能用于重复指令中9图图3-2 k23绝对寻址方式绝对寻址方式10 例例3-2,*(#k23) 用于数据存储器寻址用于数据存储器寻址(1) MOV *(#032002h),T2 ;k23=03 2002h;CPU从从03 2002h处读取数据装入处读取数据装入T2(2) MOV dbl(*(#032002h),pair(T2);k23=03 2002h,k23+1=03 2003h;CPU从从03 2002h和和03 2003h处读取数据处读取数据,装入装入T2和和T311 例例3-9,* (#k23) 用于用于MMR寻址寻址MOV * (#AR2), T2;k23=00 0012

7、h(AR2的地址为的地址为00 0012h);CPU从从00 0012h处读取数据装入处读取数据装入T212(3) I/O绝对寻址绝对寻址 操作数格式操作数格式 port(#k16) 其中,其中,k16是一个是一个16位位无符号无符号立即数立即数图图3-3 I/O3-3 I/O绝对寻址方式绝对寻址方式13 例例3-14, port(#k16) 用于对用于对I/O空间的寻址空间的寻址(1) MOV port(#2),AR2 ;CPU从从I/O 地址地址0002h读取数据进读取数据进AR2(2) MOV AR2,port(#0F000h) ;CPU把把AR2的数据输出到的数据输出到I/O 地址地址

8、0F000h143.1.2 直接寻址直接寻址15 DP直接寻址方式和直接寻址方式和SP直接寻址方式直接寻址方式 相互排斥相互排斥的,只能有一种方式存在的,只能有一种方式存在 通过设置通过设置ST1_55的的CPL位位选择选择(见课本(见课本P43) 寄存器位直接寻址和寄存器位直接寻址和PDP直接寻址直接寻址不受不受CPL位的影响位的影响16(1) DP直接寻址直接寻址17 例例3-3,Daddr用于数据存储器寻址,用于数据存储器寻址, 设设DPH=03h,DP=0000h(1) MOV 0005h,T2 ;DPH:(DP+Doffset)=03:(0000h+0005h)=03 0005h;C

9、PU从从03 0005h处读取数据装入处读取数据装入T2(2) MOV dbl(0005h),pair(T2) ;DPH:(DP+Doffset)=03 0005h;DPH:(DP+Doffset1)=03 0004h;CPU从从03 0005h和和03 0004h处读取数据装入处读取数据装入T2和和T318 例例3-10,Daddr用于用于MMR寻址寻址 DPH=DP=00h,CPL=0MOV mmap(AC0L), AR2 ;DPH:(DP+Doffset)= 00:(0000h+0008h)=00 0008h;CPU从从00 0008h处读取数据装入处读取数据装入AR219每个每个 “s

10、ub-page” 有有 128 wordsDP 是每个是每个“sub-page”里的基地指针里的基地指针20表表3-5 计算偏移地址的方法计算偏移地址的方法21(2) SP直接寻址直接寻址注意:注意:主数据页中的堆栈只能占用主数据页中的堆栈只能占用00 0060h00 0060h00 FFFFh00 FFFFh中中的空间。因为的空间。因为00 0000h00 0000h00 005Fh00 005Fh是是保留给存储映保留给存储映射寄存器射寄存器用的。用的。22 例例3-4,*SP(offset)用于数据存储器寻址用于数据存储器寻址 设设SPH = 0,SP = FF00h(1) MOV *SP

11、(5),T2;SPH:(SP+offset)=00 FF05h;CPU从从00 FF05h 处读取数据装入处读取数据装入T2(2) MOV dbl(*SP(5), pair(T2);SPH:(SP+offset)=00 FF05h;SPH:(SP+offset1)=00 FF04h;CPU从从00 FF05h和和00 FF04h处读取数据装入处读取数据装入T2和和T323(3) 寄存器寄存器位位直接寻址直接寻址 操作数中的偏移操作数中的偏移bitoffset是是相对相对于寄存器于寄存器最低位最低位来说的来说的 仅能访问下列寄存器的各位仅能访问下列寄存器的各位 AC0AC3,AR0AR7,T0T

12、3 相关指令仅有相关指令仅有 寄存器位测试寄存器位测试/设置设置/清零清零/求补等求补等24 例例3-12,bitoffset用于对寄存器用于对寄存器位位的寻址的寻址(1) BSET 0,AC3 ;CPU 将将AC3的位的位0置为置为1(2) BTSTP 30,AC3;CPU把把AC3的位的位30和位和位31分别复制到分别复制到;状态寄存器状态寄存器ST0_55的位的位TC1和和TC225(4) PDP直接寻址直接寻址26 外设数据页寄存器(外设数据页寄存器(PDP), 9位位 选取选取512个个外设外设数据页(数据页(0511)中的一页)中的一页 每页有每页有128个字(个字(0127)指令

13、中指定的一个指令中指定的一个7 位的偏移(位的偏移(Poffset) 使用时必须用使用时必须用port( )限定词限定词 指定要访问的指定要访问的是是I/O空间空间,而,而不是不是数据存储单元数据存储单元 port()限定词的括号内是要读或写的操作数限定词的括号内是要读或写的操作数27 例例3-15,Poffset用于对用于对I/O空间的寻址空间的寻址设设PDP=511(1) MOV port(0),T2 ;PDP:Poffset=FF80h;CPU从从FF80h读取数据进读取数据进T2(2) MOV T2,port(127);PDP:Poffset=FFFFh;CPU把把T2的的数据输出到数

14、据输出到I/O地址地址0FFFFh283.1.3 间接寻址间接寻址291. AR间接寻址间接寻址表表3-7 AR间接寻址方式时间接寻址方式时AR的内容的内容30(1) AR间接寻址数据空间间接寻址数据空间ARnH不能不能单独装入单独装入31ST2_55 的的 AR7LC AR0LC(见课本(见课本P46)0 线性寻址,线性寻址,1 循环寻址循环寻址例例3-5,*ARn用于数据存储器寻址用于数据存储器寻址 设设ARn工作在工作在线性线性寻址状态寻址状态(1) MOV *AR4, T2; AR4H:AR4 = XAR4;CPU从从XAR4处读取数据装入处读取数据装入T2(2) MOV dbl(*A

15、R4), pair(T2) ;第一个地址为第一个地址为XAR4;如果如果XAR4为偶数为偶数,则第二个地址则第二个地址XAR4+1;如果如果XAR4为奇数为奇数,则第二个地址为则第二个地址为XAR4-1;CPU从从XAR4和和XAR4+1(或或XAR4-1)处读取数据装入处读取数据装入T2和和T332(2) AR间接寻址寄存器位间接寻址寄存器位ARn为为0,则访问寄存器的最低位,则访问寄存器的最低位33ST0_55 的的 TC1和和TC2(见课本)(见课本)测试测试/控制控制位位保存一些特殊指令的测试结果保存一些特殊指令的测试结果 例例3-13,*ARn用于对寄存器位的寻址用于对寄存器位的寻址

16、设设AR0=0,AR5=30(1) BSET *AR0,AC3 ;CPU 将将AC3的位的位0置为置为1(2) BTSTP *AR5,AC3;CPU把把AC3的位的位30和位和位31分别复制到分别复制到;状态寄存器状态寄存器ST0_55的位的位TC1和和TC234(3) AR间接寻址间接寻址I/O空间空间 访问访问I/O空间空间 16位的地址位的地址 ARn:完整的:完整的I/O空间地址空间地址35 例例3-16,*ARn 用于对用于对I/O空间的寻址空间的寻址 设设AR4= FF80h, AR5= FFFFh(1) MOV port(*AR4), T2 ;CPU从从FF80h读取数据进读取数

17、据进T2(2) MOV T2,port(*AR5) ;CPU把把T2的数据输出到的数据输出到I/O 地址地址0FFFFh36(4) AR间接寻址操作数间接寻址操作数 AR间接寻址方式的寻址间接寻址方式的寻址操作数类型操作数类型受受ST2_55状状态寄存器中态寄存器中ARMS位(见课本位(见课本P47)的影响的影响表表3-8 DSP3-8 DSP模式和控制模式选择模式和控制模式选择37 注意:注意: 指针修改和地址产生可以是线性的或循环的指针修改和地址产生可以是线性的或循环的 根据根据ST2_55寄存器的指针配置而定寄存器的指针配置而定AR7LC AR0LC:0 线性寻址,线性寻址,1 循环寻址

18、循环寻址 见课本见课本P46 循环寻址时,循环寻址时,16位的缓冲区起始地址寄存器位的缓冲区起始地址寄存器(BSA01、BSA23、BSA45、BSA67)的内容被)的内容被加到相应的指针上加到相应的指针上 指针间的加法和减法以指针间的加法和减法以64K为模,为模,38 例例3-6,*(ARn+T0)用于数据存储器寻址用于数据存储器寻址 设设ARn工作在工作在线性线性寻址状态寻址状态(1) MOV *(AR4+T0),T2;AR4H:AR4=XAR4;CPU从从XAR4处读取数据装入处读取数据装入T2,然后然后AR4=AR4+T0(2) MOV dbl(*(AR4+T0),pair(T2);第

19、一个地址为第一个地址为XAR4;如果如果XAR4为为偶数偶数,则第二个地址,则第二个地址XAR4+1;如果如果XAR4为为奇数奇数,则第二个地址为,则第二个地址为XAR4-1;CPU从从XAR4和和XAR4+1(或或XAR4-1)处读取数据装入处读取数据装入T2和和T3;然后然后AR4=AR4+T0392. 双双AR间接寻址间接寻址 通过通过8个个ARn中的中的两个两个寄存器访问寄存器访问两个两个数据存储器地址数据存储器地址 使用情况使用情况 执行执行一个一个指令,同时访问两个指令,同时访问两个16位数据存储器位数据存储器 ADD Xmem,Ymem,ACx 并行并行执行执行两个两个指令,每个

20、指令访问一个数据存储器指令,每个指令访问一个数据存储器 MOV Smem,dstAND Smem,src,dst 注意事项:同注意事项:同AR间接寻址方式间接寻址方式403. CDP间接寻址间接寻址表表3-12 访问空间与访问空间与CDP的关系的关系41(1) CDP间接寻址数据空间间接寻址数据空间42(2) CDP间接寻址寄存器位间接寻址寄存器位 寄存器寄存器仅限于仅限于 累加器(累加器(AC0AC3) 辅助寄存器(辅助寄存器(AR0AR7) 暂存器(暂存器(T0T3)图图3-12 CDP间接寻址寄存器位间接寻址寄存器位43(3) CDP间接寻址间接寻址I/O空间空间 访问访问I/O空间时空

21、间时 16位的位的CDP包含了完整的包含了完整的I/O空间地址空间地址44(4) CDP间接寻址操作数间接寻址操作数 注意:注意: 指针修改或地址产生可以是指针修改或地址产生可以是线性的线性的,也可以,也可以是是循环循环的,的,取决于取决于ST2_55中的指针配置中的指针配置 CDPLC:0 线性寻址,线性寻址,1 循环寻址循环寻址 见课本见课本P47 使用循环寻址时,使用循环寻址时,16位缓冲区起始地址寄存器位缓冲区起始地址寄存器(BSAC)的内容被加到相应指针上)的内容被加到相应指针上 CDP指针的修改以指针的修改以64K取模,取模,只有修改只有修改CDPH才能跨主才能跨主数据页寻址数据页

22、寻址45表表3-13 CDP间接操作数间接操作数 464. 系数间接寻址系数间接寻址 与与CDP间接寻址方式相同的地址产生方式间接寻址方式相同的地址产生方式 存储空间数据移动存储空间数据移动/初始化以及算术指令初始化以及算术指令支持支持系数间接寻系数间接寻址方式址方式u有限冲击响应滤波器有限冲击响应滤波器u乘法运算乘法运算u乘加运算乘加运算u乘减运算乘减运算u双乘加运算和双乘减运算双乘加运算和双乘减运算47 主要用于主要用于 一个周期内对一个周期内对三个三个存储器操作数存储器操作数进行操作的指令进行操作的指令 Xmem和和Ymem双双AR间接寻址间接寻址 Cmem系数间接寻址方式系数间接寻址方式 例如:例如: MPY Xmem,Cmem,ACx :MPY Ymem,Cmem,ACy 其中,其中,Cmem位于与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论