版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、TMS320C54x指令系统DSP技术与 应用实例第3版 第第3章章 TMS320C54x指令系统指令系统 3.1 寻址方式 3.2 指令系统 3.3 流水线技术 TMS320C54x指令系统DSP技术与 应用实例第3版 结果:将立即数0FFH传送至累加器A中 LD #0FFH, A 助记符表示: 操作码 操作数 指令系统指令系统 TMS320C54x指令系统DSP技术与 应用实例第3版 3或5位立即数8位立即数9位立即数16位立即数 LD FRAME LD RPT LDADD ORM ADDM RPT AND RPTZ ANDM ST BITF STM CMPM SUB LD XOR MAC
2、 XORM OR 【例3-1】 RPT #99 ;将紧跟在RPT后面的下一条指令循环执行100次 【例3-2】 RPT #0FFFFH ;将紧跟在RPT的下一条指令循环执行10000H次 3.1.1 立即数寻址立即数寻址 3.1 寻寻 址址 方方 式式 TMS320C54x指令系统DSP技术与 应用实例第3版 3.1.2 绝对地址寻址绝对地址寻址 1数据存储器地址寻址 如 :MVKD DATA1,*AR2 2程序存储器地址寻址 如:MVPD TABLE1,*AR2 3端口寻址 如:PORTR F2F0,*AR5 4*(1k)寻址 如:LD *(BUFFER),A TMS320C54x指令系统D
3、SP技术与 应用实例第3版 3.1.3 累加器寻址累加器寻址 READA WRITA 累加器寻址方式将累加器内的当前值作为地址去 访问该单元程序存储器。累加器的地址用累加器中的 数作为一个地址,这种寻址方式可用来对存放数据的 程序存储器寻址。 只有两条指令可以采用累加器寻址: TMS320C54x指令系统DSP技术与 应用实例第3版 3.1.4 直接寻址直接寻址 直接寻址指令中的低7位是一个数据页内的偏移地址, 而所在的数据页由数据页指针DP或SP决定。该偏移量加上 DP和SP的值,决定了在数据存储器中的实际地址。 直接寻址的语法格式中,用一个符号或一个常数来确 定偏移值。 例如: ADD S
4、AMPLE,A 或 ADD x,A TMS320C54x指令系统DSP技术与 应用实例第3版 直接寻址方式的指令代码的格式: 158760 操作码I=0数据存储器地址 直接寻址方式的指令代码各位的说明: 位位名名 称称功功 能能 158操作码这8位包含指令的操作码 7I=0 I=0,表示指令使用的寻址方式为直接寻址方 式 60数据存储器地址这7位包含指令的数据存储器地址偏移 TMS320C54x指令系统DSP技术与 应用实例第3版 直接寻址的方框图: DP(9) SP(9) 数据总线DB(16) 数据总线DB(16) DAGEN CPL 0 EA=DP:偏移 (IR) 1 EA=SP+偏移(I
5、R) CPL IR (dmad)的低7位 DAB(16)(读) EAB(16)(写) 或 CAB(16) (32读) TMS320C54x指令系统DSP技术与 应用实例第3版 (1)如果选择DP和dmad值相结合产生实际地址,必须 将状态寄存器ST1中的编译方式位(CPL)置0,指令寄存器 (IR)中的低7位的dmad值与9位的DP值连接在一起形成实际 地址,如图所示: 15760 DP值IR(dmad)值 因为DP值的范围为0511(129),所以以DP为 基准的直接寻址方式把存储器分成512页。7位的dmad值 的变化范围为0127,每页有128个可访问的单元。 【例3-3】 LD#x,D
6、P LDu,A ADDv,A TMS320C54x指令系统DSP技术与 应用实例第3版 (2)在以SP为基准的直接寻址中,如果选择SP和dmad 值相结合产生实际地址,则必须将状态寄存器ST1中的编 译方式位(CPL)置1。将指令寄存器中的低7位的dmad 值作为一个正偏移与SP相加得到有效的16位数据存储器 地址,如图所示: + 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SP的值 15 14 13 12 11 10 9 8 76 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0IR的值 15 14 13 12 11 10 9 8 7 6 5 4 3
7、 2 1 0 有效内存地址 【例3-4】 SSBX CPL LDX1,A ADD Y2,A TMS320C54x指令系统DSP技术与 应用实例第3版 3.1.5 间接寻址间接寻址 间接寻址方式按照辅助寄存器中的地址访问存储器。 在间接寻址中,64KW16bit数据空间任意单元都可通过 一个辅助寄存器中的16位地址进行访问。TMS320C54x有 8个16位辅助寄存器(AR0AR7),两个辅助寄存器算术 单元(ARAU0和ARAU1),可以根据辅助寄存器的内容 进行操作,完成无符号的16位算术运算。 TMS320C54x指令系统DSP技术与 应用实例第3版 1单操作数寻址 格式如图所示: 158
8、76320 操作码I=1MODARF 单数据存储器操作数间接寻址指令的各位说明: 位名 称功 能 158操作码8位域包含指令的操作码 7I=1I=1,表示指令的寻址方式为间接寻址 63MOD4位的方式域定义间接寻址的类型。表3-4将详细说明MOD域的各种类型 20ARF 3位辅助寄存器定义寻址所使用的辅助寄存器,ARF由状态寄存器ST1 中的兼容方式位(CMPT)决定: CMPT=0,标准方式。若ARF=0,则确定辅助寄存器,而不管ARP的值。 在这种方式下,ARP不能被修改,必须一直设为0。 CMPT=1,兼容方式。若ARF=0,则用ARP来选择辅助寄存器;否则, 用ARF来确定,且当访问完
9、成后,会把ARF装入ARP。汇编指令中的 *AR0表示ARP所选择的辅助寄存器 TMS320C54x指令系统DSP技术与 应用实例第3版 2循环寻址 (1)单数据存储器操作数的间接寻址类型 MOD域操作码语法功 能说 明 0000*ARxaddr=ARxARx包含数据存储器地址 0001*ARxaddr=ARx ARx=ARx-1访问后,ARx中的地址减1 0010*ARx+addr=ARx ARx=ARx+1访问后,ARx中的地址加1 0011*+ARxaddr=ARx+1 ARx=ARx+1在寻址之前,ARx中的地址加1 0100*AR-0Baddr=ARx ARx=B(ARx-AR0)访
10、问后,从ARx中以位倒序进位的方式减去AR0 0101*ARx0addr=ARx ARx=ARx-AR0访问后,从ARx中减去AR0 0110*ARx+0addr=ARx ARx=ARx+AR0访问后,把AR0加到ARx中去 0111*ARx+0Baddr=ARx ARx=B(ARx+AR0)访问后,把AR0以位倒序进位的方式加到ARx中 1000*ARx%addr=ARx ARx=circ(ARx1)访问后,ARx中的地址以循环寻址的方式减1 1001*ARx0%addr=ARx ARx=circ(ARx-AR0)访问后,ARx中的地址以循环寻址的方式减去AR0 1010*ARx+%addr
11、=ARx ARx=circ(ARx+1)访问后,ARx中的地址以循环寻址的方式加1 1011*ARx+0%addr=ARx ARx=circ(ARx+AR0)访问后,把AR0以循环寻址的方式加到ARx中 1100*ARx+(1k)addr=ARx+1k ARx=ARx ARx加上16位的长偏移(lk)的和作为数据存储器的 地址,ARx本身不被修改 1101*+ARx(1k)addr=ARx+1k ARx=ARx+1k 在寻址之前,把一个带符号的16位的长偏移加到ARx 中,再用新的ARx的值作为数据存储器的地址 1110*+ARx(1k)% addr=circ(ARx+1k) ARx=circ
12、(ARx+1k) 在寻址之前,把一个带符号的16位的长偏移以循环 寻址的方式加到ARx中,再用新的ARx的值作为数据 存储器的地址 1111*(1k)addr=1k 一个无符号的16位的长偏移用来作为数据存储器的 绝对地址(也属于绝对地址) TMS320C54x指令系统DSP技术与 应用实例第3版 (2)循环寻址的框图 H H 15 N L L N-1 0 ARx 0 0 15 N L L N-1 0 指针 0 0 15 N L L N-1 0 新的 指针 H H 15 N L L N-1 0 新的 ARx 0 0 15 N BL BL N-1 0 BK H H 15 N BL BL N-1
13、0 EOB+1 H H 15 N 0 0 N-1 0 EFB 循环地址 算术逻辑 (N-1)个存储空间的第1个字 TMS320C54x指令系统DSP技术与 应用实例第3版 3位倒序寻址 位倒序寻址提高了执行速度和在FFT算法的程序中使用存储器 的效率。在这种寻址方式中,AR0存放的整数N是FFT点数的一半, 一个辅助寄存器指向一个数据存放的物理单元。当使用位倒序寻址 方式把AR0加到辅助寄存器中时,地址以位倒序的方式产生,即进 位是从左向右的,而不是从右向左。 例如,AR2表示在存储器中数据的基地址0110 0000(二进制 数),AR0的值为0000 1000(二进制数). 位倒序寻址 :*
14、AR2+0B *AR2+0B 10000000 00000110 10000110 TMS320C54x指令系统DSP技术与 应用实例第3版 索引步长的位模式和AR2的低4位的关系 : 原 序位 模 式位倒序模式位 倒 序 0000000000 1000110008 2001001004 30011110012 4010000102 50101101010 6011001106 70111111014 8100000011 9100110019 10101001015 111011110113 12110000113 131101101111151111111115
15、TMS320C54x指令系统DSP技术与 应用实例第3版 4双数据存储器操作数寻址 (1)双数据存储器操作数间接寻址指令的格式操作码XmodXarYmodYar (2)双数据存储器操作数间接寻址指令代码的各位说明 位 名 称 功 能 158 操作 码 这8位包含指令的操作码 76Xmod 定义用于访问Xmem操作数的间接寻 址方式的类型 54Xar 这两位确定用于访问Xmem地址的辅 助寄存器 32Ymod 定义用于访问Ymem操作数的间接寻 址方式的类型 10Yar这两位确定包含Ymem的辅助寄存器 TMS320C54x指令系统DSP技术与 应用实例第3版 (3)由
16、指令的Xar和Yar域选择的辅助寄存器 Xar,Yar辅助寄存器 00AR2 01AR3 10AR4 11AR5 (4)双数据存储器操作数间接寻址的类型 Xmod,Ymod操作码语法操作码语法功功 能能说说 明明 00*ARxaddr=ARxARx是数据存储器地址 01*ARxaddr=ARx ARx=ARx-1访问后,ARx中的地址减1 10*ARx+addr=ARx ARx=ARx+1访问后,ARx中的地址加1 11*ARx+0% addr=ARx ARx=circ(ARx+AR0) 访问后,AR0以循环寻址的 方式加到ARx中 TMS320C54x指令系统DSP技术与 应用实例第3版 3
17、.1.6 存储器映射寄存器寻址存储器映射寄存器寻址 16 7 9 指令寄存器(IR)或 当前辅助寄存器的低7位 16位存储器映射时寄存器地址 所有位均为0 只有如下8条指令可用: LDM MMR,dst MVDM dmad,MMR MVMD MMR,dmad MVMM MMRx,MMRy POPM MMR PSHM MMR STLM src,MMR STM #1k,MMR TMS320C54x指令系统DSP技术与 应用实例第3版 3.1.7 堆栈寻址堆栈寻址 共有以下4条指令使用堆栈寻址方式访问堆栈: (1)PSHD把一个数据存储器的值压入堆栈 (2)PSHM把一个存储器映射寄存器的值压入堆栈
18、 (3)POPD把一个数据存储器的值弹出堆栈 (4)POPM把一个存储器映射寄存器的值弹出堆栈 SP00110001SP00100001 00100010X2 0011X10011X1 01000100 01010101 01100110 堆栈操作对堆栈指针的影响: 操作前的堆栈和SP操作后 的堆栈和SP TMS320C54x指令系统DSP技术与 应用实例第3版 3.2 指令系统 3.2.1 符号与意义符号与意义 符 号意 义 A累加器A ACC累加器 ACCA累加器A ACCB累加器B ALU算术逻辑单元 ARx特指某个辅助寄存器(0 x7) ARPST0中的辅助寄存器指针位,这3位指向当前
19、辅助寄存器(AR) ASMST1中的5位累加器移位方式位(-16ASM15) B累加器B BRAFST1中的块循环有效标志 BRC块循环计数器 BITC4位数决定位测试指令对指定的数据存储器值的哪一位进行测试 C16ST1中的双16位/双精度算术方式位 CST0中的进位位 CC两位条件代码(0CC3) CMPTST1中的兼容方式位 CPLST1中的编译方式位 cond用操作数表示条件执行指令使用的条件 TMS320C54x指令系统DSP技术与 应用实例第3版 3.2.2 TMS320C54x的指令系统的指令系统 1算术运算指令 (1)加法指令ADD 语 法表 达 式注 释 ADD Smem,s
20、rcsrc=src+Smem与ACC相加 ADD Smem,TS,srcsrc=src+SmemTS操作数移位后加到ACC中 ADD Smem,16,src,dstdst=src+Smem16把左移16位的操作数加到ACC中 ADD Smem,SHIFT,src ,dstdst=src+SmemSHIFT把移位后的操作数加到ACC中 ADD Xmem,SHFT,srcdst=src+SmemSHFT把移位后的操作数加到ACC中 ADD Xmem,Ymem,dstdst=Xmem16+Ymem 16两个操作数分别左移16位,然后相加 ADD # lk,SHFT,src,dstdst=src+ #
21、 lkSHFT长立即数移位后加到ACC中 ADD # lk,16,src,dstdst=src+ # lk16把左移16位的长立即数加到ACC中 ADD src,SHIFT,dstdst=dst+srcSHIFT移位再相加 ADD src,ASM,dstdst=dst+srcASM移位再相加,移动位数为ASM的值 ADDC Smem,srcsrc=src+Smem+C带有进位位的加法 ADDM # lk,SmemSmem=Smem+# lk把长立即数加到存储器中 ADDS Smem,srcsrc=src+uns(Smem)带符号扩展的加法 TMS320C54x指令系统DSP技术与 应用实例第3
22、版 (2)减法指令SUB 语 法表 达 式注 释 SUB Smem,srcsrc=src-Smem从累加器中减去一个操作数 SUB Smem,TS,srcsrc=src-SmemTS移动由T寄存器的015位所确定的位数,再与ACC相减 SUB Smem,16,src,dstdst=src-Smem16移位16位再与ACC相减 SUB Smem,SHIFT,src,dstdst=src-SmemSHIFT操作数移位后再与src相减 SUB Xmem,SHFT,srcdst=src-XmemSHFT操作数移位后再与src相减 SUB Xmem,Ymem,dstdst=Xmem16-Ymem16两个
23、操作数分别左移16位,再相减 SUB # lk,SHFT,src,dstdst=src- # lk SHFT长立即数移位后与ACC做减法 SUB # lk,16,src,dstdst=src- # lk 16长立即数左移16位后再与ACC相减 SUB src,SHIFT,dstdst=dst-src SHIFT移位后的src与dst相减 SUB src,ASM,dstdst=dst-src ASMsrc移动ASM决定的位数后再与dst相减 SUBB Smem,srcsrc=src-Smem-C做带借位的减法 SUBC Smem,srcElse src=src 1条件减法 SUBS Smem,s
24、rcsrc=src-uns(Smem)与ACC做带符号扩展的减法 TMS320C54x指令系统DSP技术与 应用实例第3版 (3)乘法指令MPY 语 法表 达 式注 释 MPY Smem,dstdst=T*SmemT寄存器与单数据存储器操作数相乘 MPYR Smem,dstdst=rnd(T*Smem)T寄存器带四舍五入与单数据存储器操作数相乘 MPY Xmem,Ymem,dstdst=Xmem*Ymem,T=Xmem两个数据存储器操作数相乘 MPY Smem,# lk,dstdst=Smem* # lk,T=Smem长立即数与单数据存储器操作数相乘 MPY # lk,dstdst=T* #
25、lk长立即数与T寄存器的值相乘 MPYA dstdst=T*A(3216)ACCA的高端与T寄存器的值相乘 MPYA SmemT=Smem单数据存储器操作数与ACCA的高端相乘 MPYU Smem,dstdst=uns(T)*uns(Smem)T寄存器的值与符号数相乘 SQUR Smem,dstdst=Smem*Smem,T=Smem单数据存储器操作数的平方 SQUR A,dstdst=A(3216)*A(3216)ACCA的高端的平方值 TMS320C54x指令系统DSP技术与 应用实例第3版 (4)乘加和乘减指令MAC、MAS 语 法表 达 式注 释 MAC Smem,srcsrc=src
26、+T*Smem与T寄存器相乘,再加到ACC中 MAC Xmem,Ymem src,dstT=Xmem双操作数相乘,再加到ACC中 MAC # lk,src,dstdst=src+T* # lkT寄存器与长立即数相乘,再加到ACC中 MAC Smem,# lk,src,dstT=Smem与长立即数相乘,再加到ACC中 MACR Smem,srcsrc=rnd(src+T*Smem)带四舍五入与T寄存器相乘再加到ACC中(凑整) MACR Xmem,Ymem,src,dstT=Xmem带四舍五入与双操作数相乘再加到ACC中(凑整) MACA Smem,BT=Smem与ACCA的高端相乘,加到ACC
27、B中 MACA T,src,dstdst=src+T*A(3216)T寄存器与ACCA高端相乘,加到ACC中 MACAR Smem,BT=Smem带四舍五入与ACCA的高端相乘,加到ACCB中(凑整) MACAR T,src,dstdst=rnd(src+T*A(3216)T寄存器带四舍五入与ACCA高端相乘,加到ACC中(凑整) MACD Smem,pmad,src src=src+Smem*pmad T=Smem, (Smem+1)=Smem 带延时的与程序寄存器值相乘再累加 MACP Smem,pmad,srcsrc=src+Smem*pmad T=Smem与程序寄存器值相乘再累加 MA
28、CSU Xmem,Ymem,srcT=Xmem带符号数与无符号数相乘再累加 MAS Smem,srcsrc=src-T*Smem与T寄存器相乘,再与ACC相减 MASR Smem,srcsrc=rnd(src-T*Smem)带四舍五入与T寄存器相乘,再与ACC相减(凑整) MAS Xmem,Ymem,src,dstdst=src-Xmem*Ymem T=Xmem双操作数相乘再与ACC相减 MASR Xmem,Ymem,src,dstT=Xmem双操作数带四舍五入相乘,再与ACC相减(凑整) MASA Smem ,BT=Smem从ACCB中减去单数据存储器操作数与ACCA的乘积 MASA T,s
29、rc,dstdst=src-T*A(3216)从src中减去ACCA高端与T寄存器的乘积 MASAR T,src,dstdst=rnd(src-T*A(3216)从src中减去ACCA高端与T寄存器的乘积(凑整) SQURA Smem,srcsrc=src+Smem*Smem T=Smem平方后累加 SQURS Smem,srcsrc=src-Smem*Smem T=Smem平方后做减法 TMS320C54x指令系统DSP技术与 应用实例第3版 (5)双操作数指令 语 法表 达 式注 释 DADD Lmem,src,dst dst(150)=Lmem(15 0)+src(150) 双重加法 D
30、ADST Lmem,dst dst(150)=Lmem(15 0)-T T寄存器长立即数的双 重加法和减法 DRSUB Lmem,src src(150)=Lmem(15 0)-src(150) 长字的双16位减法 DSADT Lmem,dst dst(150)=Lmem(15 0)+T T寄存器和长操作数的 双重减法 DSUB Lmem,src src(150)= src(150)- Lmem(150) ACC的双精度/双16位减 法 DSUBT Lmem,dst dst(150)=Lmem(15 0)-T T寄存器和长操作数的 双重减法 TMS320C54x指令系统DSP技术与 应用实例第
31、3版 (6)特殊应用指令 语 法表 达 式注 释 ABDST Xmem,YmemA=(Xmem-Ymem) 16求绝对值 ABS src,dstdst=|src|ACC的值取绝对值 CMPL src,dstdst= src求累加器值的反码 DELAY Smem(Smem+1)=Smem存储器延迟 EXP srcT=符号所在的位数(src)求累加器指数 FIRS Xmem,Ymem,pmadA=(Xmem+Ymem) 16对称有限冲击响应滤波器 LMS Xmem,YmemA=A+Xmem 16+215求最小均方值 MAX dstdst=max(A,B)求累加器的最大值 MIN dstdst=mi
32、n(A,B)求累加器的最小值 NEG src,dstdst=-src求累加器的反值 NORM src,dstdst=norm(src,TS)归一化 POLY SmemA=rnd(A(3216)*T+B)求多项式的值 RND src,dstdst=src+215求累加器的四舍五入值 SAT src饱和计算(src)对累加器的值进行饱和计算 SQDST Xmem,YmemA=(Xmem-Ymem) 16求两点之间距离的平方 TMS320C54x指令系统DSP技术与 应用实例第3版 2逻辑指令 (1)与指令 语 法表 达 式注 释 AND Smem,srcsrc=src & Smem 单数据存储器读
33、数和ACC相 与 AND # lk,SHFT,src,dst dst=src & #1k SHFT 长立即数移位后和ACC相与 AND # 1k,16,src,dst dst=src & #1k 16 长立即数左移16位后和ACC 相与 AND src,SHIFT ,dst dst=dst & src SHIFT 累加器的值移位后相与 ANDM #1k,SmemSmem=Smem & #1k 单数据存储器操作数和长立 即数相与(2)或指令 语 法表 达 式注 释 OR Smem,srcsrc=src | Smem单数据存储器读数和ACC相或 OR # 1k,SHFT,src,dstdst=sr
34、c | #1k SHFT长立即数移位后与ACC相或 OR # 1k,16,src,dstdst=src | #1k 16长立即数左移16位后与ACC相或 OR src,SHIFT ,dstdst=dst | src SHIFT累加器的值移位后相或 ORM #1k,SmemSmem=Smem | #1k单数据存储器操作数与长立即数相或 TMS320C54x指令系统DSP技术与 应用实例第3版 (3)异或指令 语 法表 达 式注 释 XOR Smem,srcsrc=src Smem 单数据存储器读数与ACC相 异或 XOR #1k,SHFT,src ,dst dst=src #1k SHFT 长立
35、即数移位后与ACC相异 或 XOR # 1k,16,src ,dst dst=src #1k 16 长立即数左移16位后与ACC 相异或 XOR src,SHIFT ,dst dst=dst src SHIFT 累加器的值移位后相异或 XORM #1k,SmemSmem=Smem #1k 单数据存储器操作数和长立 即数相异或 (4)移位指令 语 法表 达 式注 释 ROL src带进位位循环左移累加器值循环左移 ROL TC src 带TC位循环左移 累加器值带TC位循环左 移 ROR src带进位位循环右移累加器值循环右移 SFTA src,SHIFT ,dst dst=src SHIFT(
36、算术 移位) 累加器值算术移位 SFTC src if src(31)=src(30)then src=src 1 累加器值条件移位 SFTL src,SHIFT ,dst dst=dst SHIFT(逻辑 移位) 累加器逻辑移位 TMS320C54x指令系统DSP技术与 应用实例第3版 (5)测试指令 语 法表 达 式注 释 位 Xmem,位CTC=Xmem(15-位C)测试指定位 位F Smem,#1kTC=(Smem & #1k)测试由立即数指定位 位F SmemTC=Smem(15-T(3-0)测试由T寄存器指定位 CMPM Smem,#1kTC=(Smem= = #1k)比较单数据存
37、储器操作数和立即数的值 CMPR CC,ARxCompare ARx with AR0辅助寄存器ARx和AR0相比较 TMS320C54x指令系统DSP技术与 应用实例第3版 3程序控制指令 (1)分支指令 语 法表 达 式注 释 BD pmadPC=pmad(150)可以选择延时的无条件转移 BACCD srcPC=src(150)可以选择延时的指针指向的地址 BANZD pmad,Sind then PC=pmad(150)当AR不为0时转移 BCD Pmad,cond ,cond,condthen PC=pmad(150)可以选择延时的条件转移 FBD extpmadXPC=pmad(2
38、216)可以选择延时的远程无条件转移 FBACCD srcXPC=src(2216)远程转移到ACC所指向的地址 (2)调用指令 语 法表 达 式注 释 CALAD srcPC=src(150) 可选择延时的调用ACC所 指向的子程序 CALLD pmadPC=pmad(150) 可以选择延时的无条件调 用 CCD pmad,cond,cond,con d PC=pmad(150)可以选择延时的条件调用 FCALAD srcXPC=src(2216) 可以选择延时的远程无条 件调用 FCALLD extpmadXPC=pmad(2216) 可以选择延时的远程条件 调用 TMS320C54x指令
39、系统DSP技术与 应用实例第3版 (3)中断指令 语 法表 达 式注 释 INTRKINTM=1软件中断 TRAPK PC=IPTR(157)+K 2 软件中断 (4)返回指令 语 法表 达 式注 释 FRETDPC=TOS,+ +SP可以选择延时远程返回 FRETEDPC=TOS,+ +SP,INTM=0可以选择延时远程返回,且允许中断 RCD cond,cond,condif(cond(s) then PC=TOS,+ +SP可以选择延时的条件返回 RETDPC=TOS,+ +SP可以选择延时的条件返回 RETEDPC=TOS,+ +SP,INTM=0可以选择延时的条件返回,且允许中断 R
40、ETFDPC=RTN,+ +SP,INTM=0可以选择延时的快速条件返回,且允许中断 TMS320C54x指令系统DSP技术与 应用实例第3版 (5)重复指令 语 法表 达 式注 释 RPT Smem循环执行一条指令,RC=Smem循环执行下一条指令,计数为单数据存储器操作数 RPT # K循环执行一条指令,RC= # K循环执行下一条指令,计数为短立即数 RPT #1k循环执行一条指令,RC= # 1k循环执行下一条指令,计数为长立即数 RPTBD pmad 循环执行一段指令,RSA=PC+24 REA=pmad,BRAF=1 可以选择延迟的块循环 RPTZ dst,# 1k循环执行一条指令
41、,RC= # 1k,dst=0循环执行下一条指令,且对ACC清零 (6)堆栈操作指令 语 法表 达 式注 释 FRAME KSP=SP+K堆栈指针立即数值 POPD SmemSmem=TOS,+ +SP 把数据从栈顶弹入数据存储 器中 POPM MMRMMR=TOS,+ +SP 把数据从栈顶弹入存储器映 射寄存器中 PSHD Smem- -SP,Smem=TOS把数据存储器值压入堆栈中 PSHM MMR- -SP,MMR=TOS 把存储器映射寄存器值压入 堆栈中 TMS320C54x指令系统DSP技术与 应用实例第3版 (7)其他程序控制指令 语 法表 达 式注 释 IDLE KIdle(K)
42、保持空闲状态,直到有中断产生 MAR Smemthen modify AR(ARP)修改辅助寄存器 NOP无无任何操作 RESET软件复位软件复位 RSBX N,S位ST(N,S位)=0状态寄存器复位 SSBX N,S位ST(N,S位)=1状态寄存器置位 XC n,cond,cond ,cond 如果满足条件,则执行下面的 n条指令,n=1或2 条件执行 TMS320C54x指令系统DSP技术与 应用实例第3版 4装入指令 (1)一般存储指令 语 法表 达 式注 释 DST src,LmemLmem=src把累加器的值存放到长字中 ST T,SmemSmem=T存储T寄存器的值 ST TRN,
43、SmemSmem=TRN存储TRN的值 ST # lk,SmemSmem= # lk存储长立即操作数 STH src,SmemSmem=src(3116)把累加器的高端存放到数据存储器中 STH src,ASM,SmemSmem=src(3116) (ASM) ACC的高端移动由ASM决定的位数后,存放到数 据存储器中 STH src,SHFT,XmemXmem=src(3116) (SHFT)ACC的高端移位后,存放到数据存储器中 STH src,SHIFT,SmemSmem=src(3116) (SHIFT)ACC的高端移位后,存放到数据存储器中 STL src,SmemSmem=src(
44、150)把累加器的低端存放到数据存储器中 STL src,ASM,SmemSmem=src(150) ASM 累加器的低端移动ASM决定位数后,存放到数据 存储器中 STL src,SHFT,XmemXmem=src(150) SHFTACC的低端移位后,存放到数据存储器中 STL src,SHIFT,SmemSmem=src(150) SHIFTACC的低端移位后,存放到数据存储器中 STL M src,MMRMMR=src(150)把累加器的低端存放到存储器中 STM # lk,MMRMMR= # lk把累加器的低端存放到存储器映射寄存器中 TMS320C54x指令系统DSP技术与 应用实
45、例第3版 (2)一般装入指令 语 法表 达 式注 释 DLD Lmem,dstdst=Lmem把长字装入累加器中 LD Smem,dstdst=Smem把操作数装入累加器中 LD Smem,TS,dstdst=Smem TS操作数移动由TREG(50)决定的位数后装入ACC中 LD Smem,16,dstdst=Smem 16操作数左移16位后装入ACC中 LD Smem,SHIFT,dstdst=Smem SHIFT操作数移位后装入ACC中 LD Xmem,SHFT,dstdst=Xmem SHFT操作数Xmem移位后装入ACC中 LD #K,dstdst= # K把短立即操作数装入ACC中
46、 LD # lk,SHFT,dstdst= # lk SHFT长立即操作数移位后装入ACC中 LD # lk,16,dstdst=# lk 16长立即操作数左移16位后装入ACC中 LD src,ASM,dstdst=src ASM累加器移动由ASM决定的位数 LD src,SHIFT,dstdst=src SHIFT累加器移位 LD Smem,TT=Smem把单数据存储器操作数装入T寄存器中 LD Smem,DPDP=Smem(80)把单数据存储器操作数装入DP中 LD # k9,DPDP= # k9把9位操作数装入DP中 LD # k5,ASMASM= # k5把5位操作数装入累加器移位方
47、式寄存器中 LD #k3,ARPARP= # k3把3位操作数装入到ARP中 LD Smem,ASMASM=Smem(40)把操作数的位40位装入ASM中 LDM MMR,dstdst=MMR把存储器映射寄存器值装入累加器中 LDR Smem,dstdst=rnd(Smem)把存储器值装入ACC的高端 LDU Smem,dstdst=uns(Smem)把不带符号的存储器值装入累加器中 LTD SmemT=Smem,(Smem+1)=Smem把单数据存储器值装入T寄存器中,并且插入延迟 TMS320C54x指令系统DSP技术与 应用实例第3版 (3)条件存储指令 语 法表 达 式注 释 CMPS
48、 src,Smem then Smem=src(150) 比较、选择并存储最大值 SACCD src,Xmem,cond If (cond) Xmem=src(ASM- 16) 条件存储累加器的值 SRCCD Xmem,cond If (cond) Xmem=BRC 条件存储块循环计数器 STRCD Xmem,cond If (cond) Xmem=T条件存储T寄存器的值 (4)并行装入和存储指令 语 法表 达 式注 释 | LD Xmem,dst|dst=Xmem16 存储ACC和装入累加器中并行 执行 | LD Xmem,T|T=Xmem 存储ACC和装入T寄存器中并 行执行 (5)并行装
49、入和乘法指令 语 法表 达 式注 释 | MAC Ymem,dst_ |dst_=dst_+T*Ymem 装入和乘/累加操作并行执行, 可凑整 | MACR Ymem,dst_ |dst_=rand(dst_+T*Y mem) 装入和乘/累加操作并行执行, 可凑整 | MAS Ymem,dst_ |dst_=dst_-T*Ymem装入乘/减法并行执行 | MASR Ymem,dst_ |dst_=rand(dst_- T*Ymem) 装入乘/减法并行执行 TMS320C54x指令系统DSP技术与 应用实例第3版 (6)并行存储和加减指令 语 法表 达 式注 释 | ADD Xmem,dst |
50、dst=dst_+Xmem1 6 存储ACC和加法并行执行 | SUB Xmem,dst |dst=(Xmem16) -dst_ 存储和减法并行执行 (7)并行存储和乘法指令 语 法表 达 式注 释 | MAC Xmem,dst|dst=dst+T*Xmem存储和乘/累加并行执行 | MACR Xmem,dst |dst=rand(dst+T*Xm em) 存储和乘/累加并行执行 | MAS Xmem,dst|dst=dst-T*Xmem存储和乘/减法并行执行 | MASR Xmem,dst |dst=rand(dst- T*Xmem) 存储和乘/减法并行执行 | MPY Xmem,dst|d
51、st=T*Xmem存储和乘法并行执行 TMS320C54x指令系统DSP技术与 应用实例第3版 (8)其他存储和装入指令 语 法表 达 式注 释 MVDD Xmem,YmemYmem=Xmem在数据存储器内部转移 MVDK Smem,dmaddmad=Smem目的地址寻址的数据转移 MVDM dmad,MMRMMR=dmad把数据转移到存储器映射寄存器中 MVDP Smem,pmadpmad=Smem把数据转移到程序存储器中 MVKD dmad,SmemSmem=dmad源地址寻址的数据转移 MVMD MMR,dmaddmad=MMR把存储器映射寄存器值转移到数据存储器中 MVMM MMRx,
52、MMRyMMRy=MMRx在存储器映射寄存器之间转移数据 MVPD pmad,SmemSmem=pmad把程序存储器的值转移到数据存储器中 PORTR PA,SmemSmem=PA从端口把数据读到数据存储器单元中 PORTW Smem,PAPA=Smem把数据写到端口 READA SmemSmem=A把由ACCA寻址的程序存储器单元的值读到数据单元中 WRITA SmemA=Smem把数据单元中的值写到由ACCA寻址的程序存储器中 TMS320C54x指令系统DSP技术与 应用实例第3版 5单个循环指令 (1)单个循环指令 名 称说 明 FIRS有限冲击响应滤波器 MACD乘和移动结果延时存于
53、累加器中 MACP乘和移动结果存于累加器中 MVDK数据到数据移动 MVDM数据到MMR移动 MVDP数据到程序移动 MVKD数据到数据移动 MVMDMMR到数据移动 MVPD程序到数据移动 READA从程序存储器读到数据存储器中 WRITA写数据存储器到程序存储器中 TMS320C54x指令系统DSP技术与 应用实例第3版 (2)不可使用RPT或RPTZ指令循环执行的指令 名 称说 明 ADDM加长立即数到数据存储器中 ANDM把数据存储器与长立即数相与 BD无条件跳转 BACCD跳转到累加器地址 BANZD跳转到非0的辅助寄存器 BCD条件转移 CALAD调用累加器地址 CALLD无条件调用 CCD条件调用 CMPR和辅助寄存器相比较 DST长字(32位)存储 FBD无条件远程跳转 FBACCD远程跳转至累加器所指定的位置 FCALAD远程调用子循环,地址由累加器指定 FCALLD无条件远程调用 FRETD远程返回 FRETED中断使能并从中断中远程返回 IDLEIDLE指令 名 称说 明 INTR中断 LD ARP调用辅助寄存器指针(ARP) LD DP 调用数据页指针(DP) MVMMMMR之间的移动 ORM数据存储器与长立即数相与 RCD条件返回 RESET软件复位 RETD无条件返回 RETFD从中断返回 RND累
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川财经职业学院招聘编制外一般工作人员26人笔试备考试题及答案解析
- 2026浙江台州市玉环市综合行政执法局招聘编外人员10人笔试备考试题及答案解析
- 2026南平市中级人民法院招聘工作人员2人笔试备考试题及答案解析
- 2026广东云浮市郁南县机关事务管理局招聘编外合同工3人笔试备考试题及答案解析
- 2026天津开放大学第一批招聘4人(中级及以下专业技术岗位)笔试备考试题及答案解析
- 2026年社会保险法实施条例题库及答案
- 总工程师在汽车赛道建设中的专业指导与规划
- 2025年家庭霸凌预防教育课件
- 银行IT系统架构师面试全解
- 互联网公司运营总监面试宝典
- 肺大泡的课件
- 外部科研院所协作管理制度
- 2025年辅警招聘公安基础知识必刷题库及答案
- 浙江森马服饰公司营运资金管理研究
- 惠州市租赁合同(标准版)
- 武理工知识产权法学课件03专利法
- 小儿地中海贫血课件
- 危重症病人的体温管理
- 大中型水库控制运用计划编写大纲
- 草菇大田栽培技术课件
- 《人为因素与航空法规》课件(共九章)
评论
0/150
提交评论