[信息与通信]TMS320C54X DSP芯片的指令系统

上传人:cn****1 文档编号:574537050 上传时间:2024-08-16 格式:PPT 页数:126 大小:1.02MB
返回 下载 相关 举报
[信息与通信]TMS320C54X DSP芯片的指令系统_第1页
第1页 / 共126页
[信息与通信]TMS320C54X DSP芯片的指令系统_第2页
第2页 / 共126页
[信息与通信]TMS320C54X DSP芯片的指令系统_第3页
第3页 / 共126页
[信息与通信]TMS320C54X DSP芯片的指令系统_第4页
第4页 / 共126页
[信息与通信]TMS320C54X DSP芯片的指令系统_第5页
第5页 / 共126页
点击查看更多>>
资源描述

《[信息与通信]TMS320C54X DSP芯片的指令系统》由会员分享,可在线阅读,更多相关《[信息与通信]TMS320C54X DSP芯片的指令系统(126页珍藏版)》请在金锄头文库上搜索。

1、第三章第三章 TMS320C54X DSPTMS320C54X DSP芯片芯片的指令系统的指令系统指令的表示方法指令的表示方法寻址方式寻址方式指令系统指令系统目录3.2 3.2 指令的表示方法指令的表示方法指令的两种表示法指令的两种表示法: :助记符形式助记符形式和和代数表达式代数表达式 助记符形式:助记符形式:代数表达式:代数表达式:MPY *(MPY *(volume),Bvolume),B B=T*(volume) B=T*(volume) ADD #1h,5,A,BADD #1h,5,A,B B=A+#1h5 B=A+#1hR,R为循环缓冲区长度)为循环缓冲区长度)位必须为位必须为0:

2、n若若R=31, 则则N=5 n若若R=32, 则则N=6n循环寻址时,首先要指定一个循环寻址时,首先要指定一个辅助辅助寄存器寄存器ARx指向循环缓冲区,并实指向循环缓冲区,并实现循环缓冲区现循环缓冲区首尾单元相邻首尾单元相邻。n循环寻址算法循环寻址算法:循环寻址举例:循环寻址举例:n(BK)=8,(AR1)=0060H,用用”*AR1+%”间接寻址间接寻址.n第第1次间接寻址后次间接寻址后,AR1指向指向0061H单元单元;n第第2次间接寻址后次间接寻址后, AR1指向指向0062H单元单元; n第第7次间接寻址后次间接寻址后,AR1指向指向0067H单元单元;n第第8次间接寻址后次间接寻址

3、后,AR1又回到又回到0060H单单元元.循环寻址举例:循环寻址举例:n(BK)=10,N=4,(AR1)=0100H,用用”*+AR1(8)%”间接寻址间接寻址: STM #10,BK LD *+AR1(8)%,A ;寻址寻址0108H单元单元 STL A,*+AR1(8)% ;寻址寻址0106H单元单元位倒序寻址位倒序寻址n主要用于主要用于FFT算法。算法。n8点点FFT的位码倒序:的位码倒序:n若输入顺序:若输入顺序:X(0)、X(1)、X(2) 、X(3)、 X(4) 、X(5) 、X(6)、X(7);n则输出顺序:则输出顺序:Y(0)、 Y(4)、Y(2) 、Y(6)、 Y(1) 、

4、Y(5) 、Y(3)、 Y(7).n16点点FFT的位码倒序:表的位码倒序:表3.1.6位反转寻址位反转寻址n通常,在进行通常,在进行FFT算法之前,先让算法之前,先让输入数据实现位码倒置。输入数据实现位码倒置。n位倒序寻址用位倒序寻址用B表示表示,典型典型: ARx+0Bn n16点点FFT的位倒序寻址实现方法举例:的位倒序寻址实现方法举例:n n设设AR2=2060h,作为基地址,指向,作为基地址,指向X(0)的存储单元。的存储单元。n n一般:一般:AR0取取FFT长度的一半,即长度的一半,即AR0=0008hn用用*AR2+0B实现位倒序寻址:实现位倒序寻址:从左向右加从左向右加。n例

5、如:例如: STM #8,AR0 RPT #15 MVDD *AR2+0B,*AR4+ ;AR2:输入数据:输入数据X的首地址的首地址 ; AR4 :位码倒置后输入数据:位码倒置后输入数据X的首地址的首地址n第第1次次*AR2+0B寻址寻址 ;AR2=2068h, 即即X(8)n第第2次次*AR2+0B寻址寻址 ;AR2=2064h 即即X(4)n第第3次次*AR2+0B寻址寻址 ; AR2=206Dh 即即X(12) n第第4次次*AR2+0B寻址寻址 ; AR2=2062h 即即X(2)n第第5次次*AR2+0B寻址寻址 ; AR2=206ah 即即X(10) 存储器映射寄存器寻址存储器映

6、射寄存器寻址n n用途:用途:主要用于不改变主要用于不改变DP、SP的情的情况下,修改况下,修改MMR中的内容。中的内容。n n特点:特点:n n寻址速度快,对寻址速度快,对MMR执行写操作开销执行写操作开销小;小;n n可直接利用可直接利用MMR的名称快速访问数据的名称快速访问数据存储空间的第存储空间的第0页资源;页资源;n n只能寻址数据空间的第只能寻址数据空间的第0页单元。页单元。n仅有仅有8条指令条指令堆栈寻址堆栈寻址n常用于中断和调用子程序过程常用于中断和调用子程序过程n“后进先出后进先出”的原则的原则n堆栈堆栈: :保存保存PCPC值和保存数据参数值和保存数据参数n堆栈存放数据堆栈

7、存放数据: :从高地址向低地址增从高地址向低地址增长长,SP,SP总是指向堆栈中最后存入的数总是指向堆栈中最后存入的数据单元据单元n入栈入栈: :先先(SP)-1,(SP)-1,数据再入栈数据再入栈. .n出栈:数据出栈,出栈:数据出栈,SP+1.SP+1.n4条指令:条指令:堆栈寻址举例堆栈寻址举例:PSHM TPSHD *AR3+ ;SP - 1, *AR3所指单元数据入栈所指单元数据入栈POPM TPOPD *AR2 ;数据出栈,存入数据出栈,存入*AR2所指向单元,所指向单元,SP+1寻址方式举例寻址方式举例 DDAT1 .set 1000H PDAT1 .set 2000H RSBX

8、 CPL LD #1234h,A ;立即数寻址立即数寻址 ST #5678h,*(DDAT1) ;立即数寻址和绝对地址寻址立即数寻址和绝对地址寻址 LD #PDAT1,A READA2H ;立即数寻址立即数寻址,直接寻址直接寻址(DP指针指针)和和累加器寻址累加器寻址SSBX CPLST #9876h, 3H ;直接寻址直接寻址(SP指针指针)RSBX CPLSTM #DDAT1,AR2ST #9876h,*AR2 ;间接寻址间接寻址MVDK 3H,DDAT1 MVKD DDAT1, 1H ;直接寻址和绝对地址直接寻址和绝对地址(dmad)寻寻址址 MVDP 2H,PDAT1 ;直接寻址和绝对

9、地址直接寻址和绝对地址(pmad)寻址寻址 STM #8888h,T ;立即数寻址和存储器映射寄存器寻址立即数寻址和存储器映射寄存器寻址PSHM TPOPM T ;堆栈寻址和存储器映射寄存器寻址堆栈寻址和存储器映射寄存器寻址STM #4000h,AR0RPT #29MVPD 1000H,*AR0+ ;程序存储器到数据存储器程序存储器到数据存储器数据块的复制数据块的复制STM #2000H,AR2 STM #3000H,AR3 LD #0,A RPT #19MAC *AR2+,*AR3+,A STL A,*(y) ;完成完成20次乘累加操作次乘累加操作用循环缓冲区实现用循环缓冲区实现FIRSTM

10、 #xn+79,AR3STM #h+79,AR4STM #80,BKSTM #-1,AR0PORTR PA1,*(xn)Fir:RPTZ A,#79MAC *AR3+0%,*AR4+0%,ASTH A,*(y)PORTW *(y),PA0PORTR PA1,*AR3+0%3.3 3.3 C54XC54X的指令系统的指令系统共有共有129条基本指令,包含了条基本指令,包含了6种基本类种基本类型的操作:型的操作:n数据传送指令数据传送指令n算术运算指令算术运算指令n逻辑运算指令逻辑运算指令n程序控制指令程序控制指令n并行操作指令并行操作指令n重复操作指令重复操作指令n数据传送指令数据传送指令:装载

11、、存储、混装载、存储、混合装载存储合装载存储。n算术指令算术指令:包括加减、乘法、乘:包括加减、乘法、乘累加、乘累减、累加、乘累减、3232位操作数运算位操作数运算指令以及其他一些专用指令指令以及其他一些专用指令n逻辑指令逻辑指令:包括与、或、异或、:包括与、或、异或、移位和测试指令等移位和测试指令等n程序控制指令程序控制指令:包括跳转、调:包括跳转、调用、中断、返回、重复用、中断、返回、重复n并行操作指令并行操作指令:n重复操作指令重复操作指令:3.3.1 3.3.1 数据传送指令数据传送指令n指从指从存储器存储器中将源操作数传送到目的中将源操作数传送到目的操作数所指定的存储器中。操作数所指

12、定的存储器中。n数据传送指令包括:数据传送指令包括:n装载指令装载指令:n存储指令存储指令:n混合装载和存储指令混合装载和存储指令: 装载指令装载指令装载指令n将将立即数或存储器内容立即数或存储器内容赋值给赋值给目的寄目的寄存器存器。n目的寄存器主要有:目的寄存器主要有:dst、T、DP、ASM、ARP等等n典型:典型:LD Smem, dst LD #k, dstLD Smem, T LD Smem, DPLD #k5,ASM LDM MMR, dst举例:举例:n给累加器赋值:给累加器赋值:n例例1 1、2 2、4 4、6 6n注:注:SXMSXM、OVBOVB、OVMOVM等标志位的影等

13、标志位的影响响n给其他寄存器赋值给其他寄存器赋值nDPDP、T T、ASMASM等等n长字指令长字指令:DLD DLD Lmem,dstLmem,dstn例:例:DLD *AR3+,B DLD *AR3+,B ; ;增量为增量为2 2n给给DP赋值:赋值: .bss x,1 ;x=2000h .textstart: ld #x,dp ;dp=40h stm #0200h,ar4 st #0fedch,*ar4 ld *ar4,dp ;dp=0dch存储指令存储指令n将源操作数或立即数存入指定将源操作数或立即数存入指定存存储器或储器或MMRMMR。n目的操作数:目的操作数:Smem,Lmem,M

14、MRSmem,Lmem,MMR等等 存储指令条件存储指令存储指令存储指令nST:源操作数为寄存器或立即数:源操作数为寄存器或立即数n例例1、3nSTH/STL:源操作数为累加器:源操作数为累加器n例例1、2nSTM/STLM:目的操作数为:目的操作数为MMRnSTM:例:例1、2nSTLM:不管页指针:不管页指针DP或或ARx的高的高9位为何值,有效地址高位为何值,有效地址高9位都清零。访位都清零。访问数据页第问数据页第0页,例页,例1、2。nDST:n长字长字nCMPS: CSSU电路电路混合装载和存储指令混合装载和存储指令n在存储器之间或内部传送数据在存储器之间或内部传送数据n表表3.3.

15、33.3.3n缩写:缩写:Smem,Xmem,Ymem,dmad,pmad,PASmem,Xmem,Ymem,dmad,pmad,PA, ,n包括包括I/OI/O端口绝对地址寻址端口绝对地址寻址n包括累加器寻址包括累加器寻址n例:例:算术运算指令算术运算指令n加法指令加法指令nADD,ADDC(ADD,ADDC(带进位带进位, ,如如3232位扩展精位扩展精度加法度加法),),ADDMADDM( (长立即数长立即数),ADDS(),ADDS(无无符号数符号数) )n减法指令减法指令nSUB,SUB,SUBBSUBB( (带借位带借位),),SUBC(SUBC(条件减条件减),),SUBSSUB

16、S( (无符号无符号) )举例举例例:使用例:使用ADD指令完成加法指令完成加法 LD TEMP1 ,A ;TEMP1A ADD TEMP2,A ;TEMP2+AA STL A ,TEMP3 (STH A,TEMP4 ) ;将结果将结果TEMP3,TEMP4 例:用例:用ADDS实现实现32位数据装入位数据装入 LD 4 , DP ;设置设置DP LD 60h , 16 ,A ;将(将(0260H)装入装入A的高的高16位位 ADDS 61h , A ;(0261H)A的低的低16位位或或 DLD 60h , B ;32位数位数B (C16=0)减法指令 SUB SUBB SUBC减法指令举例

17、 STM 2061H , AR2 STM 2060H , AR3 SUB *AR2+ , *AR3+ , B ; (2061H)左移左移16位,同时位,同时(2060H)也左也左移移16位,然后相减,结果位,然后相减,结果B STH B ,*(2062H) ;相减的结果(相减的结果(16位)位)(2062H) n乘法指令乘法指令nMPY,MPYR(凑整凑整),MPYA(A的高端的高端),MPYU(无符号无符号),SQUR(平方平方)n后缀后缀R和和A,状态标志位状态标志位FRCT,另一乘另一乘数在数在T寄存器。寄存器。n乘加和乘减指令乘加和乘减指令n乘加:乘加:MAC MACA MACD MA

18、CP MACSUn乘减:乘减:MAS MASA SQURA SQURS乘法指令乘法指令举例乘法指令举例nMPY 13, AnMPY *AR2, *AR4+0%, BnMPY #0FFFEh, AnMPYR 0, BnMPYA *AR2nMPYA BnMPYU *AR0, AnSQUR A, B乘法乘法- -累加指令举例累加指令举例n区别:凑整区别:凑整nMAC *AR5+, AnMACR *AR5+, An区别:区别:nMAC *AR5+, *AR6+,A, BnMACR *AR5+, *AR6+,A, Bn存储器延迟存储器延迟:(Smem+1)=SmemnMACD *AR3, COEFFS,

19、 AnMACP *AR3, COEFFS, A乘法乘法- -减法指令举例减法指令举例nMAS *AR5+, AnMAS *AR5+, *AR6+, A, BnSQURA *AR3+, AnSQURS *AR3+, A算术运算指令算术运算指令n长操作数,长字指令长操作数,长字指令(共(共6 6条)条)nDADD,DSUB,DRSUB,DADST,DSAD,DSUBDADD,DSUB,DRSUB,DADST,DSAD,DSUBT TnC16(ST1)C16(ST1)决定指令工作方式决定指令工作方式,0:,0:双精双精度方式度方式;1:;1:双字方式双字方式nLmemLmem: :两个连续单元两个连

20、续单元, ,低地址存放高低地址存放高1616位字位字, ,高地址存放低高地址存放低1616位字位字n* *AR3-(AR3-(减量为减量为2)2)特殊应用指令特殊应用指令nABDST:两矢量的距离两矢量的距离nABS:绝对值绝对值nCMPL:累加器的反码累加器的反码nDELAY:存储器延迟存储器延迟nEXP,NORM:累加器归一化累加器归一化nFIRS、LMS 、POLYnMAX,MIN,NEGnRND,SAT, SQDST等等特殊指令举例:特殊指令举例:nDELAY *AR3nEXP B与与NORM B联合使用联合使用nMAX AnSAT B逻辑运算指令逻辑运算指令分为:与、或、异或、移位、

21、测试分为:与、或、异或、移位、测试n与与 AND,ANDM(立即数)立即数)n或或 OR,ORM (立即数)立即数)n异或异或 XOR,XORM (立即数)立即数)n循环循环移位移位nROL:带进位位的循环左移,:带进位位的循环左移,C-D0, D31-C,保护位清零。保护位清零。nROR、ROLTC:n条件移位条件移位nSFTC srcn算术移位和逻辑移位算术移位和逻辑移位nSFTA、SFTL算术移位算术移位nSFTA:n对累加器的整个对累加器的整个40位操作位操作n右移:右移:SXM=1,高位符号扩展;高位符号扩展;SXM=0,高位高位0填充填充n左移:低位以左移:低位以0填充填充逻辑移位

22、逻辑移位nSFTL:n对累加器的低对累加器的低32位操作,高位操作,高8位填位填0n均不受均不受SXM的影响的影响n右移时高位填右移时高位填0n左移时低位填左移时低位填0举例:举例:SFTA与与SFTL的区别的区别n例例1:nSFTA A, 5, BnSFTL A, 5, Bn例例2:nSFTA B, +5nSFTL B, +5测试指令测试指令nBIT:测试指定位:测试指定位nBITF:测试指定的多个位:测试指定的多个位nBITT:测试:测试T指定位指定位nCMPM:比较两数是否相等:比较两数是否相等n如:如:CMPM *AR4+, 0404hnCMPR:比较:比较ARx和和AR0程序控制指令

23、程序控制指令n长转移,长调用:前缀长转移,长调用:前缀F(PC,XPC) n延时转移:延时转移:后缀后缀D1)分支指令分支指令 B,BACC,BANZ,BC,FB,FBACC 2)调用指令调用指令 CALA,CALL,CC,FCALA,FCALL3)中断指令中断指令 INTR k,TRAP k4)返回指令返回指令 RET,RETE,RETF,RC,FRET,FRETE5)堆栈操作指令)堆栈操作指令 FRAME K,POPD,POPM,PSHD,PSHM6)其他程序控制指令)其他程序控制指令 IDLE,MAR,NOP,RESET,RSBX,SSBX,XC分支指令分支指令n无条件转移无条件转移n

24、B:nBACC:无条件转移到无条件转移到ACC指定的地址指定的地址n条件转移条件转移nBANZ:当:当ARx不为不为0时转移时转移如:如:BANZ LOOP,*AR2-条件指令条件指令nBC:条件转移:条件转移nCC:条件调用:条件调用nRC:条件返回:条件返回例例: RC TC ;TC=1,则返回则返回CC SUB1,BNEQ ;B不为不为0,则调用则调用SUB1BC NEXT,AGT,AOV ;A0并且溢出并且溢出(两两条件相与条件相与),则转到则转到NEXT 分支指令 调用指令 中断指令 返回指令 堆栈操作指令其他程序控制指令其他程序控制指令nRSBX:指定标志位清指定标志位清0nSSB

25、X:指定标志位置指定标志位置1nXC:条件执行指令条件执行指令n如果满足条件如果满足条件,则执行紧接的则执行紧接的n条单字条单字指令指令nn:1或或2n注注:条件的修改条件的修改n例例:SUBC DEN,AXC 1,BLT NEG A STL A,QUOT 其他程序控制指令重复指令重复指令n重复指令重复指令: RPT,RPTB,RPTZn可省去跳转可省去跳转,条件判断条件判断,流水线打断流水线打断等等,高效率循环执行指令高效率循环执行指令nRPT,RPTZ:可将多周期指令变为单可将多周期指令变为单周期指令周期指令(如如, MVPD)nRPT:单指令重复单指令重复n循环计数器循环计数器RCnRP

26、TB:块重复指令块重复指令n几个寄存器几个寄存器:BRC,RSA,REA,标志位标志位BRAFnRPTZ:n多重循环多重循环,合理安排可减少执行时间合理安排可减少执行时间n最内层循环最内层循环:RPT或或RPTZn次内层循环次内层循环:RPTBn其余层循环其余层循环:BANZ并行操作指令并行操作指令1)并行装入和存储指令并行装入和存储指令 ST LD 2)并行装入和乘法指令)并行装入和乘法指令 LD MAC,LD MAS3)并行存储和加减指令)并行存储和加减指令 ST ADD,ST SUB4)并行存储和乘法)并行存储和乘法 ST MAC,ST MAS,ST MPY 并行装载和存储指令并行指令并行指令n所有并行指令均为单字指令所有并行指令均为单字指令n多总线同时工作多总线同时工作n注意移位注意移位nST LDnDB总线和总线和EB总线同时工作总线同时工作n先读后写原则先读后写原则

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号