版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1内容提要:内容提要: n寻址方式寻址方式 绝对寻址方式绝对寻址方式 直接寻址方式直接寻址方式 间接寻址方式间接寻址方式nTMS320C55x的指令系统的指令系统 算术运算指令算术运算指令 位操作指令位操作指令 扩展辅助寄存器操作指令扩展辅助寄存器操作指令 逻辑运算指令逻辑运算指令 移动指令移动指令 程序控制指令程序控制指令第第3章章 TMS320C55x的指令系统的指令系统23.1 寻址方式寻址方式访问数据空间、存储器映射寄存器、寄存器位和访问数据空间、存储器映射寄存器、寄存器位和I/O空间空间三种寻址方式三种寻址方式:l绝对寻址方式绝对寻址方式通过在指令中指定一个常数地址完成寻址。通过在指
2、令中指定一个常数地址完成寻址。l直接寻址方式直接寻址方式使用地址偏移量寻址。使用地址偏移量寻址。l间接寻址方式间接寻址方式使用指针完成寻址。使用指针完成寻址。3表表3-1 指令中用到的语法元素指令中用到的语法元素43.1.1 绝对寻址方式绝对寻址方式表表3-2 3-2 绝对寻址方式绝对寻址方式5(1) k16绝对寻址方式绝对寻址方式l格式格式u*abs16(#k16)其中:其中:k16是是16位无符号常数位无符号常数l要点要点uk16被译码为被译码为2个字节扩充到指令中个字节扩充到指令中.u不能与其它指令并行执行不能与其它指令并行执行.3.1.1 绝对寻址方式绝对寻址方式6(2) k23绝对寻
3、址方试绝对寻址方试l格式格式u*(#k23) 其中:其中:k23是无符号的是无符号的23位常数位常数l要点要点uk23被译码为被译码为3个字节,其中第三个字节的个字节,其中第三个字节的最高最高位位被忽略被忽略u不能与其它指令并行执行不能与其它指令并行执行3.1.1 绝对寻址方式绝对寻址方式7(3) I/O绝对寻址方式绝对寻址方式l操作数格式操作数格式uPort (#k16)其中,其中,k16是一个是一个16位无符号立即数位无符号立即数图图3-3 I/O3-3 I/O绝对寻址方式绝对寻址方式3.1.1 绝对寻址方式绝对寻址方式83.1.2 直接寻址方式直接寻址方式表表3-3 3-3 直接寻址方式
4、直接寻址方式9lDP和和SP直接寻址方式只能有一种方式存在。直接寻址方式只能有一种方式存在。 通过设置通过设置ST1_55的的CPL位选择。位选择。l寄存器位直接寻址方式和寄存器位直接寻址方式和PDP直接寻址方式不受直接寻址方式不受CPL位的影响。位的影响。CPL寻址模式的选择寻址模式的选择0DP直接寻址模式直接寻址模式1SP直接寻址模式直接寻址模式3.1.2 直接寻址方式直接寻址方式10(1) DP直接寻址方式直接寻址方式l23位地址的形成:位地址的形成:u高高7位由位由DPH寄存器提供寄存器提供u低低16位由下面两个值的和组成位由下面两个值的和组成数据页寄存器(数据页寄存器(DP):标识一
5、个标识一个128个字的局部数据个字的局部数据页页的首地址的首地址7位的偏移地址(位的偏移地址(Doffset) 计算方法因访问数据空间还是存储器映射寄存器而计算方法因访问数据空间还是存储器映射寄存器而有所不同。有所不同。3.1.2 直接寻址方式直接寻址方式11l计算偏移地址的方法计算偏移地址的方法:3.1.2 直接寻址方式直接寻址方式12(2) SP直接寻址方式直接寻址方式l23位地址的形成位地址的形成u高高7位由位由SPH提供提供u低低16位为位为SP和一个和一个7 位的偏移地址(位的偏移地址(offset)的和的和lSPH和和SP合并后形成扩展数据堆栈指针(合并后形成扩展数据堆栈指针(XS
6、P)3.1.2 直接寻址方式直接寻址方式13(3) 寄存器寄存器位位直接寻址方式直接寻址方式l操作数中的偏移bitoffset是相对于寄存器最低位来说的.l寄存器位测试/设置/清零/求补等指令支持这种寻址方式l仅能访问下列寄存器的各位:AC0AC3,AR0AR7,T0T33.1.2 直接寻址方式直接寻址方式如果如果bitoffsetbitoffset为为0 0,则访问,则访问寄存器的最低位;寄存器的最低位;如果如果bitoffsetbitoffset为为3 3,则访问,则访问寄存器的第寄存器的第3 3位。位。14(4) PDP直接寻址方式直接寻址方式l9位的位的外设外设数据页寄存器(数据页寄存
7、器(PDP)u指向外设数据页(指向外设数据页(0511)中的一页,每页有)中的一页,每页有128个字(个字(0127)。)。 指令中指定的一个指令中指定的一个7 位的偏移(位的偏移(Poffset)l使用时用使用时用port( )限定词限定词u指定要访问的是指定要访问的是I/O空间,而不是数据存储单元空间,而不是数据存储单元uport()限定词的括号内是要读或写的操作数限定词的括号内是要读或写的操作数3.1.2 直接寻址方式直接寻址方式153.1.3 间接寻址方式间接寻址方式表表3-6 间接寻址方式间接寻址方式16(1) AR间接寻址方式间接寻址方式 l用辅助寄存器用辅助寄存器ARn(n=07
8、)指向数据指向数据表表3-7 AR间接寻址方式时间接寻址方式时AR的内容的内容寻址空间寻址空间AR内容内容数据空间(存储空间或寄存器)数据空间(存储空间或寄存器) 23位地址的低位地址的低16位,高位,高7位由位由ARnH提供提供寄存器位或双位寄存器位或双位位的相对位置位的相对位置I/O空间空间一个一个16位的位的I/O地址地址3.1.3 间接寻址方式间接寻址方式17 AR间接寻址数据空间间接寻址数据空间lARn:提供一个提供一个16位的低字地址位的低字地址 ARnH:提供高提供高7位的地址位的地址 l访问数据空间,用专用指令把地址装入访问数据空间,用专用指令把地址装入XARnuARn可以单独
9、装入可以单独装入uARnH不能单独装入不能单独装入3.1.3 间接寻址方式间接寻址方式23位的扩展辅助寄存器位的扩展辅助寄存器XARn18 AR间接寻址寄存器位间接寻址寄存器位lARn指定寄存器指定寄存器位位的位置的位置 例如,例如,ARn为为0,则访问寄存器的最低位。,则访问寄存器的最低位。3.1.3 间接寻址方式间接寻址方式19AR间接寻址间接寻址I/O空间空间l使用使用16位的地址位的地址 ARn包括完整的I/O空间地址图图3-10 AR间接寻址间接寻址I/O空间空间ARnI/O 空间空间0000 0000 0000 0000.1111 1111 1111 11110000h hFFFF
10、hFFFFh3.1.3 间接寻址方式间接寻址方式20 ARMS位对位对AR间接操作数的影响间接操作数的影响l寻址操作数类型受ST2_55状态寄存器中ARMS位的影响ARMSDSP模式和控制模式选择模式和控制模式选择0DSP模式模式: 用于高效的数字信号处理用于高效的数字信号处理1控制模式控制模式: 优化代码长度,用于控制系统优化代码长度,用于控制系统注意:注意: 指针间的加法和减法以指针间的加法和减法以64K64K为模为模,不改变,不改变XARnXARn,则不能跨主,则不能跨主数据页寻址数据。数据页寻址数据。3.1.3 间接寻址方式间接寻址方式21表表3-9 DSP模式下的模式下的AR间接寻址
11、模式(间接寻址模式(1)操作数操作数指针修改方式指针修改方式访问数据类型访问数据类型*ARnARn值不变值不变Smem、Lmem、Baddr*ARn+地址产生后,指针的值自增地址产生后,指针的值自增:对于对于16位位/1位操作数位操作数, ARn=ARn+1;对于对于32位位/2位操作数位操作数, ARn=ARn+2Smem、Lmem、Baddr*ARn-地址产生后,指针的值自减:地址产生后,指针的值自减:对于对于16位位/1位操作数,位操作数, ARn=ARn-1;对于对于32位位/2位操作数,位操作数, ARn=ARn-2Smem、Lmem、Baddr*+ARn地址产生前,指针的值自增:地
12、址产生前,指针的值自增:对于对于16位位/1位操作数,位操作数, ARn=ARn+1;对于对于32位位/2位操作数,位操作数, ARn=ARn+2Smem、Lmem、Baddr3.1.3 间接寻址方式间接寻址方式22表表3-9 DSP模式下的模式下的AR间接寻址模式(间接寻址模式(1)操作数操作数指针修改方式指针修改方式访问数据类型访问数据类型*-ARn地址产生地址产生前前,指针的值自减:,指针的值自减:对于对于16位位/1位操作数,位操作数, ARn=ARn-1;对于对于32位位/2位操作数,位操作数, ARn=ARn-2Smem、Lmem、Baddr*(ARn+ T0/AR0)地址产生地址
13、产生后后,指针的值变化:,指针的值变化:如果如果C54CM=0,ARn=ARn+T0;如果如果C54CM=1,ARn=ARn+AR0;Smem、Lmem、Baddr*(ARn-T0/AR0)地址产生地址产生后后,指针的值变化:,指针的值变化:如如C54CM=0,ARn=ARn-T0;如如C54CM=1,ARn=ARn-AR0Smem、Lmem、Baddr3.1.3 间接寻址方式间接寻址方式23表表3-9 DSP模式下的模式下的AR间接寻址模式(间接寻址模式(2)操作数操作数指针修改方式指针修改方式访问数据类型访问数据类型*ARn(T0/AR0)ARn作为基地址不变,作为基地址不变,T0或或AR
14、0的值作为偏移地址的值作为偏移地址Smem、Lmem、Baddr*(ARn+ T0B/AR0B)地址产生地址产生后后,指针的值变化:,指针的值变化:如果如果C54CM=0,有,有ARn=ARn+T0;如果如果C54CM=1,有,有ARn=ARn+AR0;按按位倒序进位位倒序进位规律进行加法规律进行加法Smem、Lmem、Baddr*(ARn-T0B/AR0B)地址产生地址产生后后,指针的值变化:,指针的值变化:如果如果C54CM=0,有,有ARn=ARn-T0;如果如果C54CM=1,有,有ARn=ARn- AR0;按按位倒序借位位倒序借位规律进行相减规律进行相减Smem、Lmem、Baddr
15、3.1.3 间接寻址方式间接寻址方式24表表3-9 DSP模式下的模式下的AR间接寻址模式(间接寻址模式(2)操作数操作数指针修改方式指针修改方式访问数据类型访问数据类型*(ARn+T1)地址产生地址产生后后,ARn= ARn+T1Smem、Lmem、Baddr*(ARn-T1)地址产生地址产生后后,ARn= ARn-T1Smem、Lmem、Baddr*ARn(T1)ARn作为基地址不变作为基地址不变,T1值为偏移地值为偏移地址址Smem、Lmem、Baddr*ARn(#K16)ARn作为基地址不变作为基地址不变,K16值为偏移值为偏移地址地址Smem、Lmem、Baddr*+ARn(#K16
16、)地址产生地址产生前前,ARn=ARn+K16Smem、Lmem、Baddr3.1.3 间接寻址方式间接寻址方式25表表3-10 控制模式下的控制模式下的AR间接寻址模式间接寻址模式操作数操作数指针修改方式指针修改方式访问数据类型访问数据类型*ARnARn值不变值不变Smem、Lmem、Baddr*ARn+地址产生后,指针的值自增地址产生后,指针的值自增:对于对于16位位/1位操作数,位操作数,ARn=ARn+1;对于对于32位位/2位操作数,位操作数,ARn=ARn+2;Smem、Lmem、Baddr*ARn-地址产生后,指针的值自减:地址产生后,指针的值自减:对于对于16位位/1位操作数,
17、位操作数, ARn=ARn-1;对于对于32位位/2位操作数,位操作数, ARn=ARn-2Smem、Lmem、Baddr*(ARn+ T0/AR0)地址产生后,指针的值变化:地址产生后,指针的值变化:如如C54CM=0,ARn=ARn+T0;如如C54CM=1,ARn=ARn+AR0Smem、Lmem、Baddr*(ARn-T0/AR0)地址产生后,指针的值变化:地址产生后,指针的值变化:如如C54CM=0,ARn=ARn-T0;如如C54CM=1,ARn=ARn-AR0;Smem、Lmem、Baddr3.1.3 间接寻址方式间接寻址方式26表表3-10 控制模式下的控制模式下的AR间接寻址
18、模式间接寻址模式操作数操作数指针修改方式指针修改方式访问数据类型访问数据类型*ARn(T0/AR0)ARn作为基地址不变,作为基地址不变,T0或或AR0的的值作为偏移地址值作为偏移地址Smem、Lmem、Baddr*ARn(#K16)ARn作为基地址不变,作为基地址不变,K16的值作为的值作为偏移地址偏移地址Smem、Lmem、Baddr*+ARn(#K16)地址产生前,指针的值变为地址产生前,指针的值变为ARn=ARn+K16Smem、Lmem、Baddr*ARn(short(#k3)ARn作为基地址不变,作为基地址不变,3 位的无符号位的无符号立即数作为偏移指针立即数作为偏移指针Smem、
19、Lmem、Baddr3.1.3 间接寻址方式间接寻址方式27(2) 双双AR间接寻址方式间接寻址方式l用两个用两个ARn寄存器访问两个数据存储器地址寄存器访问两个数据存储器地址如:如:u执行一个指令,执行一个指令,同时访问两个同时访问两个16位数据存储器位数据存储器 ADD Xmem , Ymem , ACxu并行执行两个指令,并行执行两个指令,每个指令访问一个数据存储器每个指令访问一个数据存储器 MOV Smem , dstAND Smem , src , dstlARMS位不影响双位不影响双AR间接寻址方式的操作数间接寻址方式的操作数l双操作数可以使用同一个双操作数可以使用同一个ARn,其
20、中一个为,其中一个为*ARn 或或*ARn(T0),且,且ARn不改变不改变3.1.3 间接寻址方式间接寻址方式28表表3-11双双AR间接寻址方式操作数间接寻址方式操作数操作数操作数指针修改方式指针修改方式访问数据类型访问数据类型*ARnARn值不变值不变Smem,Lmem,Xmem,Ymem*ARn+地址产生后,地址产生后,对于对于16位操作数,位操作数,ARn=ARn+1;对于对于32位操作数,位操作数,ARn=ARn+2Smem,Lmem,Xmem,Ymem*ARn-地址产生后,地址产生后,对于对于16位操作数,位操作数,ARn=ARn-1;对于对于32位操作数,位操作数,ARn=AR
21、n-2Smem,Lmem,Xmem,Ymem*(ARn+ T0/AR0)地址产生后地址产生后,如果如果C54CM=0,则,则ARn=ARn+T0;如果如果C54CM=1,则,则ARn=ARn+AR0Smem,Lmem,Xmem,Ymem3.1.3 间接寻址方式间接寻址方式29表表3-11双双AR间接寻址方式操作数间接寻址方式操作数操作数操作数指针修改方式指针修改方式访问数据类型访问数据类型*(ARn- T0/AR0)地址产生后,地址产生后,C54CM=0,则,则ARn=ARn-T0;C54CM=1,则,则ARn=ARn-AR0Smem,Lmem,Xmem,Ymem*ARn(T0/AR0)ARn
22、用作基地址用作基地址 ,C54CM=0,T0的值为偏移地址;的值为偏移地址;C54CM=1,AR0的值为偏移地址的值为偏移地址Smem,Lmem,Xmem,Ymem*(ARn+T1)地址产生后,地址产生后, ARn=ARn+T1Smem,Lmem,Xmem,Ymem*(ARn-T1)地址产生后,地址产生后, ARn=ARn-T1Smem,Lmem,Xmem,Ymem3.1.3 间接寻址方式间接寻址方式30(3) CDP间接寻址方式间接寻址方式lCPU使用使用CDP产生地址的方式依赖于访问类型:产生地址的方式依赖于访问类型:表表3-12 访问空间与访问空间与CDP的关系的关系3.1.3 间接寻址
23、方式间接寻址方式31 CDP间接寻址数据空间间接寻址数据空间lCDPH提供提供7位的高位域,位的高位域,CDP提供提供16位的低字,合位的低字,合并为并为23位的扩展系数数据指针(位的扩展系数数据指针(XCDP)CDPHCDP数据空间数据空间000 0000.000 00000000 0000 0000 0000.1111 1111 1111 1111主数据页主数据页0: 00 0000h00 FFFFh000 0001.000 00010000 0000 0000 0000.1111 1111 1111 1111主数据页主数据页1: 01 0000h01 FFFFh000 0010.000
24、00100000 0000 0000 0000.1111 1111 1111 1111主数据页主数据页2: 02 0000h02 FFFFh. . .111 1111.111 11110000 0000 0000 0000.1111 1111 1111 1111主数据页主数据页127: 7F 0000h7F FFFFh3.1.3 间接寻址方式间接寻址方式32 CDP间接寻址寄存器位间接寻址寄存器位lCDP包含位序号包含位序号 若若CDP为为0,则它指向寄存器的第,则它指向寄存器的第0位位l只有寄存器位测试、设置、清零、求补指令支持只有寄存器位测试、设置、清零、求补指令支持CDP间接寻址寄存器位
25、间接寻址寄存器位l寄存器仅限于:累加器(寄存器仅限于:累加器(AC0AC3)、)、辅助寄存辅助寄存器(器(AR0AR7)、)、暂存器(暂存器(T0T3)3.1.3 间接寻址方式间接寻址方式33 CDP间接寻址间接寻址I/O空间空间 当当CDP间接寻址方式用于访问间接寻址方式用于访问I/O空间时,空间时,16位位的的CDP包含了完整的包含了完整的I/O空间地址空间地址3.1.3 间接寻址方式间接寻址方式34 CDP间接寻址操作数间接寻址操作数操作数操作数指针修改方式指针修改方式访问类型访问类型*CDPCDP值不改变值不改变Smem,Lmem,Xmem,Ymem*CDP+地址产生后,地址产生后,对
26、于对于16位位/1位操作数,位操作数,CDP=CDP+1;对于对于32位位/2位操作数,位操作数,CDP=CDP+2Smem,Lmem,Xmem,Ymem*CDP-地址产生后,地址产生后,对于对于16位位/1位操作数,位操作数,CDP=CDP-1;对于对于32位位/2位操作数,位操作数,CDP=CDP-2Smem,Lmem,Xmem,Ymem*CDP(#K16)CDP作为基地址不改变,作为基地址不改变,16位的有符号常位的有符号常数数K16作为偏移地址作为偏移地址Smem,Lmem,Xmem,Ymem*+CDP(#K16)地址产生前,地址产生前,CDP=CDP+K16Smem,Lmem,Xme
27、m,Ymem3.1.3 间接寻址方式间接寻址方式35(4) 系数间接寻址方式系数间接寻址方式l使用方法与使用方法与CDP间接寻址方式相同间接寻址方式相同 。l存储空间数据移动以及算术指令支持系数间接寻址方式存储空间数据移动以及算术指令支持系数间接寻址方式l用于一个周期内对三个存储器操作数进行操作的指令。用于一个周期内对三个存储器操作数进行操作的指令。 其中,两个操作数(其中,两个操作数(Xmem和和Ymem)使用双)使用双AR间接寻址,间接寻址,第三个操作数(第三个操作数(Cmem)使用系数间接寻址方式,)使用系数间接寻址方式,Cmem在在BB总线上传送。总线上传送。3.1.3 间接寻址方式间
28、接寻址方式如:如:有限冲击响应滤波器有限冲击响应滤波器乘法运算乘法运算乘加运算乘加运算乘减运算乘减运算双乘加运算和双乘减运双乘加运算和双乘减运算算例如:例如: MPY Xmem , Cmem , ACx :MPY Ymem ,Cmem ,ACy 其中,其中,Cmem位于与位于与Xmem、Ymem不同的存储器区块上不同的存储器区块上36操作数操作数指针变化指针变化访问类型访问类型*CDPCDP不改变不改变数据空间数据空间*CDP+地址产生后,地址产生后,CDP自增自增:对于对于16位操作数,位操作数,CDP=CDP+1;对于对于32位操作数,位操作数,CDP=CDP+2数据空间数据空间*CDP-
29、地址产生后,地址产生后,CDP自减:自减:对于对于16位操作数,位操作数,CDP=CDP-1;对于对于32位操作数,位操作数,CDP=CDP-2数据空间数据空间*(CDP+T0/AR0)地址产生后,地址产生后,如果如果C54CM=0,CDP=CDP+T0;如果如果C54CM=1,CDP=CDP+AR0数据空间数据空间表表3-15 系数间接寻址操作数系数间接寻址操作数 3.1.3 间接寻址方式间接寻址方式373.1.4 数据存储器的寻址数据存储器的寻址 三种寻址方式(绝对、直接、间接)都可以用于对数据三种寻址方式(绝对、直接、间接)都可以用于对数据存储器的寻址。通过几个例题进行说明存储器的寻址。
30、通过几个例题进行说明。例例3-1,*abs16(#k16) 用于数据存储器寻址。设用于数据存储器寻址。设DPH=03h。lMOV *abs16 ( #2002h ) , T2 ; #k16=2002h , CPU从从03 2002h处读取数据装入处读取数据装入T2例例3-2,*(#k23) 用于数据存储器寻址。用于数据存储器寻址。MOV *(#032002h) , T2 ;k23=03 2002h,CPU从从03 2002h处读取数据处读取数据装入装入T238例例3-3,Daddr用于数据存储器寻址。设用于数据存储器寻址。设DPH=03h,DP=0000h。lMOV 0005h,T2 ;DPH
31、:(DP+Doffset)=03:(0000h+0005h)=03 0005h;CPU从从03 0005h处读取数据装入处读取数据装入T23.1.4 数据存储器的寻址数据存储器的寻址例例3-4,*SP(offset)用于数据存储器寻址。设用于数据存储器寻址。设SPH=0,SP = FF00h。MOV *SP ( 5 ) , T2;SPH:(SP+offset)=00 FF05h;CPU从从00 FF05h 处读取数据装入处读取数据装入T239例例3-5,*ARn用于数据存储器寻址,设用于数据存储器寻址,设ARn工作工作在线性寻址状态。在线性寻址状态。 MOV *AR4, T2; CPU从从XA
32、R4处读取数据装入处读取数据装入T23.1.4 数据存储器的寻址数据存储器的寻址例例3-6,*(ARn+T0)用于数据存储器寻址,设用于数据存储器寻址,设ARn工作在线性寻址状态。工作在线性寻址状态。 MOV *(AR4+T0),T2; CPU从从XAR4处读取数据装入处读取数据装入T2,然后然后AR4=AR4+T040例例3-7,*(ARn+T0B)用于数据存储器寻址,设用于数据存储器寻址,设ARn工作在线性寻址状态。工作在线性寻址状态。MOV *(AR4+T0B),T2; CPU从从XAR4处读取数据装入处读取数据装入T2,然后然后AR4=AR4+T0;在执行加法时在执行加法时,采用码位倒
33、置算法采用码位倒置算法3.1.4 数据存储器的寻址数据存储器的寻址位倒序寻址位倒序寻址 应用:应用:FFT运算。可提高运算。可提高FFT算法的执行速度和存储器的使用效率算法的执行速度和存储器的使用效率. *(AR4+T0B) *(AR4-T0B),例如,例如, 0110 +1100 1001 位倒序寻址类型位倒序寻址类型.进位是从左向右进位是从左向右, 不是从右向左不是从右向左.413.1.5 存储器存储器映射寄存器的寻址映射寄存器的寻址 三种寻址方式(绝对、直接、间接)都可以用于三种寻址方式(绝对、直接、间接)都可以用于对对MMR寻址。寻址。 通过几个例题进行说明。通过几个例题进行说明。例例
34、3-8,*abs16(#k16) 用于用于MMR寻址,寻址,DPH必须为必须为0h。MOV *abs16(#AR2), T2;DPH:k16=00 0012h(AR2的地址为的地址为00 0012h);CPU从从00 0012h处读取数据装入处读取数据装入T242例例3-10,Daddr用于用于MMR寻址寻址. DPH=DP=00h,CPL=0。MOV mmap(AC0L) , AR2 ;DPH:(DP+Doffset)= 00:(0000h+0008h)=00 0008h;CPU从从00 0008h处读取数据装入处读取数据装入AR2例例3-11,*ARn用于用于MMR寻址,寻址,ARn 指向
35、某寄存器。指向某寄存器。MOV *AR6, T2 3.1.5 存储器映射寄存器的寻址存储器映射寄存器的寻址433.1.6寄存器位的寻址寄存器位的寻址 直接和间接寻址方式可以用于对寄存器位的寻址如:直接和间接寻址方式可以用于对寄存器位的寻址如:例例3-12,bitoffset 用于对寄存器位的寻址。用于对寄存器位的寻址。BSET 0 , AC3 ; 将将AC3的位的位0置为置为1BTSTP 30 , AC3; 把把AC3的位的位30和位和位31分别复制到状分别复制到状 态寄存器态寄存器ST0_55的位的位TC1和和TC244例例3-13,*ARn用于对寄存器位的寻址,用于对寄存器位的寻址,设设A
36、R0=0,AR5=30。BSET *AR0 , AC3 ; CPU 将将AC3的位的位0置为置为1BTSTP *AR5 , AC3;CPU把把AC3的位的位30和位和位31分别复制到状态寄存器分别复制到状态寄存器ST0_55的位的位TC1和和TC23.1.6寄存器位的寻址寄存器位的寻址453.1.7 I/O空间的寻址空间的寻址 绝对、直接、间接等三种寻址方式都可以用于对绝对、直接、间接等三种寻址方式都可以用于对I/O空间的寻址,如:空间的寻址,如:例例3-14,port(#k16) 用于对用于对I/O空间的寻址。空间的寻址。MOV port(#2) , AR2 ;CPU从从I/O 地址地址00
37、02h读取数据进读取数据进AR2MOV AR2 , port(#0F000h) ;CPU把把AR2的数据输出到的数据输出到I/O 地址地址0F000h46例例3-15,Poffset用于对用于对I/O空间的寻址,设空间的寻址,设PDP=511。MOV port(0) , T2 ;PDP:Poffset=FF80h,;CPU从从FF80h读取数据进读取数据进T2MOV T2 , port(127);PDP:Poffset=FFFFh,;CPU把把T2的数据输出到的数据输出到I/O地址地址0FFFFh3.1.7 I/O空间的寻址空间的寻址47例例3-16,*ARn 用于对用于对I/O空间的寻址空间
38、的寻址. 设设AR4= FF80h, AR5= FFFFh。MOV port (*AR4) , T2 ;CPU从从FF80h读取数据进读取数据进T2MOV T2 , port(*AR5);CPU把把T2的数据输出到的数据输出到I/O 地址地址0FFFFh3.1.7 I/O空间的寻址空间的寻址483.1.8 循环寻址循环寻址l间接寻址方式都可以用于循环寻址间接寻址方式都可以用于循环寻址lARn(n = 07)和)和CDP能独立地配置为线性或循环寻址。能独立地配置为线性或循环寻址。 l循环缓冲区的大小在循环缓冲区的大小在BK03、BK47或或BKC中定义。中定义。u字缓冲区字缓冲区: 定义字的个数
39、定义字的个数u寄存器位缓冲区寄存器位缓冲区: 定义位的个数定义位的个数l字缓冲区,必须在一个主数据页内,不能跨主数据页。字缓冲区,必须在一个主数据页内,不能跨主数据页。l位缓冲区,缓冲区起始地址寄存器定义参考位。位缓冲区,缓冲区起始地址寄存器定义参考位。49l建立字循环缓冲区的步骤:建立字循环缓冲区的步骤:(1)初始化相应的缓冲区大小寄存器()初始化相应的缓冲区大小寄存器(BK03或或BK47或或BKC) 例如,对于例如,对于8个字大小的缓冲区,装入个字大小的缓冲区,装入BK寄存器为寄存器为8。(2)初始化)初始化ST2_55中相应的配置位,使能选定指针中相应的配置位,使能选定指针.3.1.8
40、 循环寻址循环寻址(3)初始化扩展寄存器()初始化扩展寄存器(XARn或或XCDP),选择主数据页。),选择主数据页。例如:例如:AR3是循环指针,则装入是循环指针,则装入XAR3; CDP是循环指针,则装入是循环指针,则装入XCDP。(4)初始化对应的缓冲区首地址寄存器)初始化对应的缓冲区首地址寄存器 (BSA01,BSA23, BSA45, BSA67或或BSAC)(5)装入选定的指针)装入选定的指针ARn或或CDP,大小从,大小从0至缓冲区长度减至缓冲区长度减1。 例如,如果使用例如,如果使用AR1,且缓冲区长度为,且缓冲区长度为8, 则则AR1装入的值小于或等于装入的值小于或等于7。5
41、0例例3-17,初始化和寻址一个循环缓冲区。,初始化和寻址一个循环缓冲区。MOV #3,BK03 ;循环缓冲区大小为循环缓冲区大小为3个字个字BSET AR1LC ;使用使用AR1循环寻址循环寻址MOV #010000h,XAR1 ;循环缓冲区位于主数据页循环缓冲区位于主数据页01MOV #0A02h, BSA01 ;循环缓冲区首地址为循环缓冲区首地址为 010A02hMOV #0000h, AR1 ;首地址偏移首地址偏移0000hMOV *AR1+,AC0 ; AC0=(010A02h+0000h),AR1=0001hMOV *AR1+,AC0 ;AC0= (010A02h+0001h),A
42、R1=0002hMOV *AR1+,AC0 ;AC0= (010A02h+0002h),AR1=0000hMOV *AR1+,AC0 ;AC0= (010A02h+0000h),AR1=0001h3.1.8 循环寻址循环寻址513.2 TMS320C55x的指令系统的指令系统l两种指令集两种指令集u助记符指令集助记符指令集采用助记符来表示指令采用助记符来表示指令u代数指令集代数指令集 指令类似代数表达式,运算关系清楚明了指令类似代数表达式,运算关系清楚明了l助记符指令和代数指令在功能上是一一对应的,只是表示助记符指令和代数指令在功能上是一一对应的,只是表示形式不同形式不同l在编程时只能使用一种
43、指令集在编程时只能使用一种指令集l本节介绍本节介绍助记符指令助记符指令52l指令集按操作类型可分为指令集按操作类型可分为6种:种:u算术运算指令算术运算指令u位操作指令位操作指令u扩展辅助寄存器操作指令扩展辅助寄存器操作指令u逻辑运算指令逻辑运算指令u移动指令移动指令u程序控制指令程序控制指令3.2 TMS320C55x的指令系统的指令系统53l一条指令的属性包括:一条指令的属性包括:u指令指令u执行的操作执行的操作u是否有并行使能位是否有并行使能位u长度长度u周期周期u执行的功能单元执行的功能单元3.2 TMS320C55x的指令系统的指令系统54表表3-19 指令系统中使用的符号及其含义(
44、指令系统中使用的符号及其含义(1)符符 号号含含 义义 可选的项可选的项40若选择该项,则该指令执行时若选择该项,则该指令执行时M40=1ACOVx累加器溢出状态位累加器溢出状态位: ACOV0 、ACOV1、 ACOV2、 ACOV3ACx, ACy, ACz, ACw累加器累加器AC0AC3ARx, ARy辅助寄存器辅助寄存器: AR0, AR1, AR2, AR3, AR4, AR5, AR6, AR7Baddr寄存器位地址寄存器位地址BitIn移进的位移进的位:TC2或或CARRYBitOut移出的位移出的位:TC2或或CARRY3.2 TMS320C55x的指令系统的指令系统55表表
45、3-19 指令系统中使用的符号及其含义(指令系统中使用的符号及其含义(1)符符 号号含含 义义BORROWCARRY位的补位的补CARRY进位位进位位Cmem系数间接寻址操作数系数间接寻址操作数cond条件表述条件表述CSR单指令重复计数寄存器单指令重复计数寄存器Cycles 指令执行的周期数指令执行的周期数 dst 目的操作数:累加器,或辅助寄存器的低目的操作数:累加器,或辅助寄存器的低16位,位,或临时寄存器或临时寄存器 3.2 TMS320C55x的指令系统的指令系统56表表3-19 指令系统中使用的符号及其含义(指令系统中使用的符号及其含义(2)符符 号号含含 义义Dxx位长的数据地址
46、位长的数据地址kxx位长的无符号常数位长的无符号常数Kxx位长的带符号常数位长的带符号常数lxx位长的程序地址(相对于位长的程序地址(相对于PC的无符号偏移量)的无符号偏移量)Lxx位长的程序地址(相对于位长的程序地址(相对于PC的带符号偏移量)的带符号偏移量)Lmem32位数据存储值位数据存储值E表示指令是否包含并行使能位表示指令是否包含并行使能位3.2 TMS320C55x的指令系统的指令系统57表表3-19 指令系统中使用的符号及其含义(指令系统中使用的符号及其含义(2)符符 号号含含 义义Pipe, Pipeline流水线执行阶段:流水线执行阶段:D=译码,译码,AD=寻址,寻址,R=
47、读,读,X=执执行行Pmad程序地址值程序地址值Pxx位长程序或数据绝对地址值位长程序或数据绝对地址值RELOP关系运算符:关系运算符:= =等于,等于,=大于等于,!大于等于,!=不不等于等于R or rnd表示要进行舍入(取整)表示要进行舍入(取整)RPTC单循环计数寄存器单循环计数寄存器SHFT015的移位值的移位值SHIFTW-3231的移位值的移位值3.2 TMS320C55x的指令系统的指令系统58表表3-19 指令系统中使用的符号及其含义(指令系统中使用的符号及其含义(3)符符 号号含含 义义S, Size指令长度(字节)指令长度(字节)Smem16位数据存储值位数据存储值SP数
48、据堆栈指针数据堆栈指针src源操作数:累加器,或辅助寄存器的低源操作数:累加器,或辅助寄存器的低16位,或临时寄存器位,或临时寄存器STx状态寄存器(状态寄存器(ST0ST3)Tax,TAy辅助寄存器(辅助寄存器(ARx)或临时寄存器()或临时寄存器(Tx)TCx,TCy测试控制标志(测试控制标志(TC1,TC2)3.2 TMS320C55x的指令系统的指令系统59表表3-19 指令系统中使用的符号及其含义(指令系统中使用的符号及其含义(3)符符 号号含含 义义TRNx转移寄存器(转移寄存器(TRN0,TRN1)Tx,Ty临时寄存器(临时寄存器(T0T3)U or uns操作数为无符号数操作数
49、为无符号数XARx23位辅助寄存器(位辅助寄存器(XAR0XAR7)xdst累加器(累加器(AC0AC3)或目的扩展寄存器()或目的扩展寄存器(XSP, XSSP, XDP, XCDP, XARx)xsrc累加器(累加器(AC0AC3)或源扩展寄存器()或源扩展寄存器(XSP, XSSP, XDP, XCDP, XARx)Xmem,Ymem双数据存储器访问(仅用于间接寻址)双数据存储器访问(仅用于间接寻址)3.2 TMS320C55x的指令系统的指令系统60表表3-20 指令系统中使用的运算符及其含义指令系统中使用的运算符及其含义运运 算算 符符定定 义义计算方向计算方向+ - 加,减,取反加
50、,减,取反由右到左由右到左* / %乘,除,取模乘,除,取模由左到右由左到右+ -加,减加,减由左到右由左到右带符号左移,带符号左移,右移右移由左到右由左到右逻辑左移,逻逻辑左移,逻辑右移辑右移由左到右由左到右 =大于,大于或大于,大于或等于等于由左到右由左到右= !=等于,不等于等于,不等于由左到右由左到右&按位与按位与由左到右由左到右按位或按位或由左到右由左到右3.2 TMS320C55x的指令系统的指令系统613.2.1 算术运算指令算术运算指令n加法指令加法指令n减法指令减法指令n条件减法指令条件减法指令n条件加减法指令条件加减法指令 n乘法指令乘法指令n乘加指令乘加指令n乘减指令乘减
51、指令 n双乘加双乘加/减指令减指令n双双16位算术指令位算术指令 n比较和选择极值指令比较和选择极值指令 n最大最大/最小值指令最小值指令 n存储器比较指令存储器比较指令 n寄存器比较指令寄存器比较指令 n条件移位指令条件移位指令 n带符号移位指令带符号移位指令 n修改辅助寄存器指令修改辅助寄存器指令n修改堆栈指针指令修改堆栈指针指令 n隐含并行指令隐含并行指令 n绝对距离指令绝对距离指令 n绝对值指令绝对值指令nFIRFIR滤波指令滤波指令n最小均方最小均方 (LMS)指令)指令 n补码指令补码指令n归一化指令归一化指令 n饱和和舍入指令饱和和舍入指令3.2 TMS320C55x的指令系统的
52、指令系统62(1) (1) 加法指令加法指令助记符指令助记符指令说说 明明ADD src,dst两个寄存器的内容相加:两个寄存器的内容相加:dst = dst + srcADD k4,dst4位无符号立即数加到寄存器:位无符号立即数加到寄存器:dst = dst + k4ADD K16,src,dst16位带符号立即数和源寄存器的内容相加:位带符号立即数和源寄存器的内容相加:dst = src + K16ADD Smem,src,dst操作数操作数Smem和源寄存器的内容相加:和源寄存器的内容相加:dst = src + SmemADD ACxTx,ACy累加器累加器ACx根据根据Tx中的内容
53、移位后,再和累加器中的内容移位后,再和累加器ACy相加:相加:ACy = ACy + (ACx Tx)3.2.1 算术运算指令算术运算指令63(1) (1) 加法指令加法指令助记符指令助记符指令说说 明明ADD ACx#SHIFTW,ACy累加器累加器ACx移位后与累加器移位后与累加器ACy相加:相加:ACy = ACy + (ACx #SHIFTW)ADD K16#16,ACx,ACy16位带符号立即数左移位带符号立即数左移16位后加到累加器:位后加到累加器:ACy = ACx + (K16 #16)ADD K16#SHFT,ACx,ACy16位带符号立即数移位后加到累加器:位带符号立即数移
54、位后加到累加器:ACy = ACx + (K16 #SHFT)ADD SmemTx,ACx,ACy操作数操作数Smem根据根据Tx中的内容移位后,再和累加中的内容移位后,再和累加器器ACx相加:相加:ACy = ACx + (Smem Tx)3.2.1 算术运算指令算术运算指令64助记符指令助记符指令说说 明明ADD Smem#16,ACx,ACyACy = ACx + (Smem #16)ADD uns( Smem ),CARRY, ACx,ACyACy = ACx + Smem + CARRYADD uns( Smem ),ACx,ACyACy = ACx + uns(Smem)ADD u
55、ns( Smem ) #SHIFTW,ACx,ACyACy = ACx + (Smem #SHIFTW)ADD dbl(Lmem),ACx,ACy32位操作数位操作数Lmem加到累加器:加到累加器:ACy = ACx + dbl(Lmem)ADD Xmem,Ymem,ACx两操作数两操作数Xmem,Ymem均左移均左移16位后加到累位后加到累加器:加器:ACx = (Xmem #16) + (Ymem #16)ADD K16,Smem操作数操作数Smem和和16位带符号立即数相加:位带符号立即数相加:Smem = Smem + K16u 影响指令执行的状态位影响指令执行的状态位 CARRY,C
56、54CM,M40,SATA,SATD,SXMDu 执行指令后会受影响的状态位执行指令后会受影响的状态位 ACOVx,ACOVy,CARRY3.2.1 算术运算指令算术运算指令65(1) ADD *AR3+ , T0 , T1 ;(AR3)+T0,结果装入,结果装入T1, 并将并将AR3增增1。 例例3-183-18,加法指令举例。,加法指令举例。3.2.1 算术运算指令算术运算指令66(2) 减法指令减法指令助记符指令助记符指令说说 明明SUB src,dst两个寄存器的内容相减:两个寄存器的内容相减:dst = dst srcSUB k4,dst寄存器的内容减去寄存器的内容减去4位无符号立即
57、数:位无符号立即数:dst = dst k4SUB K16,src,dst寄存器的内容减去寄存器的内容减去16位带符号立即数:位带符号立即数:dst = src K16SUB Smem,src,dst寄存器的内容减去操作数寄存器的内容减去操作数Smem:dst = src SmemSUB src,Smem,dst操作数操作数Smem减去源寄存器的内容:减去源寄存器的内容:dst = Smem srcSUB ACxTx,ACy累加器累加器ACx根据根据Tx中的内容移位后,作为减数和累加器中的内容移位后,作为减数和累加器ACy相减:相减:ACy = ACy (ACx Tx)SUB ACx#SHIF
58、TW,ACy累加器累加器ACx移位后,作为移位后,作为减数减数和累加器和累加器ACy相减:相减:ACy = ACy (ACx #SHIFTW)SUB K16#16,ACx,ACy16位带符号立即数左移位带符号立即数左移16位后,作为位后,作为减数减数和累加器和累加器ACx相减:相减:ACy = ACx (K16 #16)SUB K16#SHFT,ACx,ACy16位带符号立即数移位后,作为减数和累加器位带符号立即数移位后,作为减数和累加器ACx相减:相减:ACy = ACx (K16 #SHFT)SUB SmemTx,ACx,ACy操作数操作数Smem根据根据Tx中的内容移位后,作为减数和累加
59、中的内容移位后,作为减数和累加器器ACx相减:相减:ACy = ACx (Smem Tx)3.2.1 算术运算指令算术运算指令67助记符指令助记符指令说说 明明SUB Smem#16,ACx,ACy操作数操作数Smem左移左移16位后,作为减数和累加器位后,作为减数和累加器ACx相减:相减:ACy = ACx (Smem #16)SUB ACx,Smem#16,ACy操作数操作数Smem左移左移16位后,作为被减数和累加器位后,作为被减数和累加器ACx相减:相减:ACy = (Smem #16) ACxSUB uns( Smem ), BORROW , ACx,ACy从累加器中减去带借位的操作
60、数从累加器中减去带借位的操作数Smem:ACy = ACx Smem BORROWSUB uns( Smem ),ACx,ACy从累加数中减去操作数从累加数中减去操作数Smem:ACy = ACx SmemSUB uns( Smem )#SHIFTW,ACx,ACy从累加数中减去移位后的操作数从累加数中减去移位后的操作数Smem:ACy = ACx (Smem #SHIFTW)SUB dbl(Lmem),ACx,ACy从累加数中减去从累加数中减去32位操作数位操作数Lmem:ACy = ACx dbl(Lmem)SUB ACx,dbl(Lmem),ACy32位操作数位操作数Lmem减去累加器:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西中医药大学《微观经济学现代观点》2025-2026学年期末试卷
- 厦门兴才职业技术学院《教育学基础》2025-2026学年期末试卷
- 长春人文学院《危急重症护理》2025-2026学年期末试卷
- 福州科技职业技术学院《新疆地方史》2025-2026学年期末试卷
- 南昌交通学院《大学语文》2025-2026学年期末试卷
- 福建生物工程职业技术学院《幼儿语言教育与活动指导》2025-2026学年期末试卷
- 河北研究生试题及答案
- 长春大学旅游学院《电气控制》2025-2026学年期末试卷
- 厦门华厦学院《房屋建筑学》2025-2026学年期末试卷
- 福州工商学院《西方行政学理论概要》2025-2026学年期末试卷
- 肌筋膜疼痛综合征触发点超声引导精准干针治疗方案
- 2025年贝壳房屋出租合同范本
- 花境园艺施工方案
- 2025年四川省雅安市小升初数学试卷(含答案)
- 教育局中小学阅读推广方案
- 教师使命读书课件
- 水务集团招聘考试笔试试题及答案
- 2025年重庆初级注安考试试题及答案
- 工完料净场地清课件
- 历年通信工程概预算考试试题与答案
- 2024年安徽省高级人民法院岗位招聘笔试真题
评论
0/150
提交评论