




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
附录6 TMS320C54x 指令系统一览表(按指令功能排列)一、算术运算指令1. 加法指令 句 法表 达 式说 明字数周期ADD Smem,srcsrc=src+Smem操作数加至累加器11ADD Smem,TS,srcsrc=src+SmemTS操作数移位后加至累加器11ADD Smem,16,src,dstdst=src+Smem16操作数左移16位加至累加器11ADD Smem,SHIFT,src,dstdst=src+SmemSHIFT操作数移位后加到累加器22ADD Xmem,SHFT,srcsrc=src+XmemSHFT操作数移位后加到累加器11ADD Xmem,Ymem,dstdst=Xmem16+Ymem16两个操作数分别左移16位后加到累加器11ADD #lk,SHFT,src,dstdst=src+#lkSHFT长立即数移位后加到累加器22ADD #lk,16,src,dstdst=src+#lk16长立即数左移16位后加到累加器22ADD src,SHIFT,dstdst=dst+srcSHIFT累加器移位后相加11ADD src,ASM,dstdst=dst+srcASM累加器按ASM移位后相加11ADDC Smem,srcsrc=src+Smem+C操作数带进位加至累加器11ADDM #lk,SmemSmem=Smem+#lk长立即数加至存储器22ADDS Smem,srcsrc=src+uns(Smem)符号位不扩展的加法112. 减法指令 句 法表 达 式说 明字数周期SUB Smem,srcsrc=srcSmem从累加器中减去操作数11SUB Smem,TS,srcsrc=srcSmemTS从累加器中减去移位后的操作数11SUB Smem,16,src,dstdst=srcSmem16从累加器中减去左移16位后的操作数11SUB Smem,SHIFT,src,dstdst=srcSmemSHIFT操作数移位后与累加器相减22SUB Xmem,SHFT,srcsrc=srcXmemSHFT操作数移位后与累加器相减11SUB Xmem,Ymem,dstdst=Xmem16Ymem16两个操作数分别左移16位后相减11SUB #lk,SHFT,src,dstdst=src#1kSHFT长立即数移位后与累加器相减22SUB #lk,16,src,dstdst=src#1k16长立即数左移16位后与累加器相减22SUB src,SHIFT,dstdst=dstsrcSHIFT源累加器移位后与目的累加器相减11SUB src,ASM,dstdst=dstsrcASM源累加器按ASM移位后与目的累加器相减llSUBB Smem,srcsrc=srcSmem从累加器中带借位减操作数11SUBC Smem,srcIf (srcSmem15)0src=(srcSmem15)1+1Elsesrc=srcl有条件减法11SUBS Smem,srcsrc=srcuns(Smem)符号位不扩展的减法113. 乘法指令 句 法表 达 式说 明字数周期MPY Smem,dstdst=T*SmemT寄存器值与操作数相乘11MPYR Smem,dstdst=rnd(T*Smem)T寄存器值与操作数相乘(带舍入)11MPY Xmem,Ymem,dstdst=Xmem*Ymem,T=Xmem两个操作数相乘11MPY Smem,#lk,dstdst=Smem*#lk,T=Smem长立即数与操作数相乘22MPY #lk,dstdst=T*#lk长立即数与T寄存器值相乘22MPYA dstdst=T*A(32-16)T寄存值与累加器A高位相乘11MPYA SmemB=Smem*A(32-16),T=Smem操作数与累加器A高位相乘11MPYU Smem,dstdst=uns(T)*uns(Smem)无符号数乘法11SQUR Smem,dstdst=Smem*Smem,T=Smem操作数的平方11SQUR A,dstdst=A(3216)*A(3216)累加器A的高位平方114. 乘法累加/减指令 句 法表 达 式说 明字数周期MAC Smem,srcsrc=src+T*Smem操作数与T寄存器值相乘后加到累加器11MAC Xmem,Ymem,src,dstdst=src+Xmern*Ymem,T=Xmem两个操作数相乘后加到累加器11MAC #lk,src,dstdst=src+T*#lk长立即数与T寄存器值相乘后加到累加器22MAC Smem,#lk,src,dstdst=src+Smem*#lk,T=Smem长立即数与操作数相乘后加到累加器22MACR Smem,srcdst=rnd(src+T*Smem)操作数与T寄存器值相乘后加到累加器(带舍入)11MACR Xmem,Ymem,src,dstdst=rnd(src+Xmem*Ymem),T=Xmem两个操作数相乘后加到累加器(带舍入)11MACA Smem,BB=B+Smem*A(3216),T=Smem操作数与累加器A高位相乘后加到累加器B11MACA T,src,dstdst=src+T*A(3216)T寄存器值与累加器A高位相乘11MACAR Smem,BB=rnd(B+Smem*A(3216),T=SmemT寄存器值与累加器A高位相乘后加到累加B(带舍入)11MACAR T,src,dstdst=rnd(src+T*A(3216)累加器A高位与T寄存器值相乘后与源、累加器相加(带舍入)11MACD Smem,pmad,srcsrc=src+Smem*pmad,T=Smem,(Smem+1)=Smem操作数与程序存储器值相乘后累加并延迟23MACP Smem,pmad,srcsrc=src+Smem*pmad,T=Smem操作数与程序存储器值相乘后加到累加器23MACSU Xmem,Ymem,srcsrc=src+uns(Xmem)*Ymem,T=Xmem元符号数与有符号数相乘后加到累加器11MAS Smem,srcsrc=srcT*Smem从累加器中减去T寄存器值与操作数的乘积11MASR Xmem,Ymem,src,dstdst=rnd(srcXmem*Ymem),T=Xmem从累加器中减去两操作数的乘积(带舍入)11MAS Xmem,Ymem,src,dstdst=srcXmem*Ymem,T=Xmem从源累加器中减去两操作数的乘积11MASR Smem,srcsrc=rnd(srcT*Smem)从累加器中减去T寄存器值与操作数的乘积(带舍入)11MASA Smem,BB=BSmem*A(3216),T=Smem从累加器B中减去操作数与累加器A高位的乘积11MASA T,src,dstdst=srcT*A(3216)从源累加器中减去T寄存器值与累加器A高位的乘积11MASAR T,src,dstdst=rnd(srcT*A(3216)从源累加器中减去T寄存器值与累加器A高位的乘积(带舍入)11SQURA Smem,srcsrc=src+Smem*Smem,T=Smem操作数平方并累加11SQURS Smem,srcsrc=srcSmem*Smem,T=Smem从累加器中减去操作数的平方115. 双精度(32位操作数)指令 句 法表 达 式说 明字数周期DADD Lmem,src,dstIf C16=0dst=Lmem+srcIf C16=1dst(3916)=Lmem(3116)+src(3116)dst(150)=Lmem(150)+src(150)双精度/双16位数加到累加器11DADST Lmem,dstIf C16=0dst=Lmem+(T16+T)If C16=1dst(3916)=Lmem(3116)+Tdst(150)=Lmem(150)T双精度/双16位数与T寄存器值相加/减11DRSUB Lmem,srcIf C16=0src=LmemsrcIf C16=1src(3916)=Lmem(3116)src(3116)src(150)=Lmem(150)src(150)双精度/双16位数中减去累加器值11DSADT Lmem,dstIf C16=0dst=Lmem(T16+T)If C16=1dst(3916)=Lmem(3116)Tdst(150)=Lmem(150)+T长操作数与T寄存器值相加/减11DSUB Lmem,srcIf C16=0src=srcLmemIf C16=1src(3916)=src(3116)Lmem(3116)src(150)=src(150)Lmem(150)从累加器中减去双精度/双16位数11DSUBT Lmem,dstIf C16=0dst=Lmem(T16+T)If C16=1dst(3916)=Lmem(3116)Tdst(150)=Lmem(150)T从长操作数中减去T寄存器值116. 专用指令 句 法表 达 式说 明字数周期ABDST Xmem,YmemB=B+|A(3216)|,A=(XmemYmem)16绝对距离11ABS src,dstdst=|src|累加器取绝对值11CMPL src,dstdst=累加器取反11DELAY Smem(Smem+1)=Smem存储器单元延迟11EXP srcT=number of sign bits(src)8求累加器的指数11FIRS Xmem,Ymem,pmadB=B+A*pmad,A=(Xmem+Ymem)16对称FIR滤波23LMS Xmem,YmemB=B+Xmem*Ymem,A=(A+Xmem16)+215求最小均方值11MAX dstdst=max(A,B)求累加器(A,B)最大值11MIN dstdst=min(A,B)求累加器(A,B)最小值11NEG src,dstdst=-src累加器变负11NORM src,dstdst=srcTS,dst=norm(src,TS)归一化11POLY SmemB=Smem16,A=rnd(A*T+B)求多项式的值11RND src,dstdst=src+215累加器舍入运算11SAT srcsaturate(src)累加器饱和运算11SQDST Xmem,YmemB=B+A(3216)*A(3216),A=(XmemYmem)16求距离的平方11二、逻辑运算指令1. 与逻辑运算指令 句 法表 达 式说 明字数周期AND Smem,srcsrc=src&Smem操作数和累加器相与11AND #lk,SHFT,src,dstdst=srclkSHFT长立即数移位后和累加器相与22AND #lk,16,src,dstdst=srclk16长立即数左移16位后和累加器相与22AND src,SHIFT,dstdst=dst&srcSHIFT源累加器移位后和目的累加器相与11ANDM #lk,SmemSmem=Smemlk操作数和长立即数相与222. 或逻辑运算指令 句 法表 达 式说 明字数周期OR Smemsrc=src|Smem操作数和累加器相或l1OR #lk,SHFT,src,dstdst=src|#lkSHFT长立即数移位后和累加器相或22OR #lk,16,src,dstdst=src|#lk16长立即数左移16位后和累加器相或22OR src,SHIFT,dstdst=dst|srcSHIFT源累加器移位后和目的累加器相或11ORM #lk,SmemSmem=Smem|#lk操作数和长立即数相或223. 异或逻辑运算指令 句 法表 达 式说 明字数周期XOR Smem,srcsrc=srcSmem操作数和累加器相异或11XOR #lk,SHFT,src,dstdst=src#lkSHFT长立即数移位后和累加器相异或22XOR #lk,16,src,dstdst=src#lk16长立即数左移16位后和累加器相异或22XOR src,SHIFT,dstdst=dstsrcSHIFT源累加器移位后和目的累加器相异或11XORM #lk,SmemSmem=Smem#lk操作数和长立即数相异或224. 移位指令 句 法表 达 式说 明字数周期ROL srcRotate left with carry in累加器经进位位循环左移11ROLTC srcRotate left with TC in累加器经TC位循环左移11ROR srcRotate right with carry in累加器经进位位循环右移11SFTA src,SHIFT,dstdst=srcSHIFTarithmetic shift累加器算术移位11SFTC srcif src(31)=src(30)then src=src1累加器条件移位11SFTL src,SHIFT,dstdst=srcSHIFTlogical shift累加器逻辑移位115. 测试指令 句 法表 达 式说 明字数周期BIT Xmem,BITCTC=Xmem(15BITC)测试指定位1lBITF Smem,#lkTC=(Smemlk)测试由立即数规定的位域22BITT SmemTC=Smem(15T(3O)测试由T寄存器指定的位11CMPM Smem,#lkTC=(Smem=#lk)存储单元与长立即数比较22CMPR CC,ARxCompare ARx with AR0辅助寄存器ARx与ARO比较11三、程序控制指令1. 分支转换指令 句 法表 达 式说 明字数周期BD pmadPC=pmad(150)无条件分支转移24/2BACCD srcPC=src(150)按累加器规定的地址转移16/4BANZD pmad,Sindif(Sind0) then PC=pmad(150)辅助寄存器不为O就转移24?/2/2BCD pmad,cond,cond,condif(cond(s) then PC=pmad(150)条件分支转移25?/3/3FBD extpmadPC=pmad(150),XPC=pmad(2216)无条件远程分支转移24/2FBACCD srcPC=src(150),XPC=src(2216)按累加器规定的地址远程分支转移16/42. 调用指令 句 法表 达 式说 明字数周期CALAD srcSP=PC,PC=src(150)按累加器规定的地址调用子程序16/4CALLD pmadSP=PC,PC=pmad(150)无条件调用子程序24/2CCD pmad,cond,cond,condif(cond(s)thenSP=PC,PC=pmad(150)有条件调用子程序25?/3/3FCALAD srcSP=PC,SP=XPC,PC=src(150),XPC=src(2216)按累加器规定的地址远程调用子程序16/4FCALLD extpmadSP=PC,SP=XPC,PC=pmad(150),XPC=pmad(2216)无条件远程调用子程序2423. 中断指令 句 法表 达 式说 明字数周期INTR KSP=PC,PC=IPTR(157)+K2,INTM=1不可屏蔽的软件中断,关闭其他可屏蔽中断13TRAP KSP=PC,PC=IPTR(157)+K2不可屏蔽的软件中断,不影响INTM位134. 返回指令 句 法表 达 式说 明字数周 期FRETDXPC=SP+,PC=SP+远程返回16/4FRETEDXPC=SP+,PC=SP+,INTM=O开中断,从远程中断返回16/4RCD cond,cond,condif(cond(s) then PC=SP+条件返回15?3/3RETDPC=SP+返回15/3RETEDPC=SP+,INTM=O开中断,从中断返回15/3RETFDPC=RTN,SP+,INTM=O开中断,从中断快速返回13/15. 重复指令 句 法表 达 式说 明字数周 期RPT SmemRepeat single,RC=Smem重复执行下条指令(Smem)+1次11RPT #KRepeat single,RC=#K重复执行下条指令k十1次11RPT #lkRepeat single,RC=#lk重复执行下条指令#lk+1次22RPTBD pmadRepeat block,RSA=PC+24#,REA=pmad1块重复指令24/2RPTZ dst,#lkRepeat single,RC=#lk,dst=O重复执行下条指令,累加器清O226. 堆栈管理指令 句 法表 达 式说 明字数周期FRAME KSP=SP+K,-128k127堆栈指针偏移一个立即数值11POPD SmemSmem=SP+将数据从栈顶弹出至数据存储器11POPM MMRMMR=SP+将数据从栈顶弹出至MMR11PSHD SmemSP=Smem将数据压人堆栈11PSHM MMRSP=MMR将MMR压人堆栈l17. 其他程序控制指令句 法表 达 式说 明字数周期IDLE Kidle(K),1k3保持空转状态,直到中断发生14MAR SmemIf CMPT=0,then modify ARx,ARP is unchangedIf CMPT=1 and ARxAR0,then modify ARx,ARP=xIf CMPT=1 and ARx=AR0,then modify AR(ARP),ARP is unchanged修改辅助寄存器11NOPno operation空操作11RESETsoftware reset软件复位13RSBX N,SBITSTN(SBIT)=0状态寄存器位复位11SSBX N,SBITSTN(SBIT)=1状态寄存器位置位11XC n,cond,cond,condIf(cond(s)then execute the next n instructions;n=1or2有条件执行11注:?条件“真”,条件“假”,延迟指令。四、加载和存储指令1. 加载指令 句 法表 达 式说 明字数周期DLD Lmem,dstdst=Lmem双精度/双16位长字加载累加器11LD Smem,dstdst=Smem将操作数加载到累加器11LD Smem,TS,dstdst=SmemTS操作数按TREG(50)移位后加载到累加器11LD Smem,16,dstdst=Smem16操作数左移16位后加载累加器11LD Smem,SHIFT,dstdst=SmemSHIFT操作数移位后加载累加器22LD Xmem,SHFT,dstdst=XmemSHFT操作数移位后加载累加器11LD #K,dstdst=#K短立即数加载累加器11LD #lk,SHFT,dstdst=#lkSHFT长立即数移位后加载累加器22LD #lk,16,dstdst=#lk16长立即数左移16位后加载累加器22LD src,ASM,dstdst=srcASM源累加器按ASM移位后加载目的累加器11LD src,SHIFT,dstdst=srcSHIFT源累加器移位后加载目的累加器11LD Smem,TT=Smem操作数加载T寄存器11LD Smem,DPDP=Smem(80)9位操作数加载DP13LD #k9,DPDP=#k99位立即数加载ARP11LD #k5,ASMASM=#k55位立即数加载ASM11LD #k3,ARPARP=#k33位立即数加载ARP11LD Smem,ASMASM=Smem(4O)5位操作数加载ASM11LDM MMR,dstdst=MMR将MMR加载到累加器11LDR Smem,dstdst(3116)=rnd(Smem)操作数舍入加载累加器高位11LDU Smem,dstdst=uns(Smem)无符号操作数加载累加器11LTD SmemT=Smem,(Smem+1)=Smem操作数加载T寄存器并延迟112. 存储指令 句 法表 达 式说 明字数周期DST src,LmemLmem=src累加器值存到长字单元中12ST T,SmemSmem=T存储T寄存器值11ST TRN,SmemSmem=TRN存储TRN寄存器值11ST #lk,SmemSmem=#lk存储长立即数22STH src,SmemSmem=src(3116)存储累加器高位11STH src,ASM,SmemSmem=src(3116)(ASM)累加器高位按ASM移位后存储11STH src,SHFT,XmemXmem=src(3116)(SHFT)累加器高位移位后存储11STH src,SHIFT,SmemSmem=src(3116)(SHIFT)累加器高位移位后存储22STL src,SmemSmem=src(150)存储累加器低位11STL src,ASM,SmemSmem=src(150)ASM累加器低位按ASM移位后存储11STL src,SHFT,XmemXmem=src(150)SHFT累加器低位移位后存储11STL src,SHIFT,SmemSmem=src(150)src(150)then Smem=src(3116)If src(3116)src(150)then Smem=src(150)比较选择并存储最大值11SACCD src,Xmem,condIf(cond) Xmem=src(ASM16)有条件存储累加器值11SRCCD Xmem,condIf(cond) Xmem=BRC有条件存储块重复计数器11STRCD Xmem,condIf(cond) Xmem=T有条件存储T寄存器值114. 并行加载和存储指令 句 法表 达 式说 明字数周期ST src,YmemYmem=src(ASM16)存储累加器并行加载累加器11|LD Xmem,dst|dst=Xmem16ST src,YmemYmem=src(ASM16)存储累加器并行加载T寄存器11|LD Xmem,T|T=Xmem5. 并行加载和乘法指令 句 法表 达 式说 明字数周期LD Xmem,dstdst=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 香港中文大学(深圳)《行车调度指挥自动化》2024-2025学年第一学期期末试卷
- 创新创业园企业入驻合同范本
- 通化医药健康职业学院《锅炉原理》2024-2025学年第一学期期末试卷
- 汕头职业技术学院《数据科学导论》2024-2025学年第一学期期末试卷
- 巢湖学院《建筑设备与工程项目管理》2024-2025学年第一学期期末试卷
- 山西职业技术学院《中小学美术教师绘画技能》2024-2025学年第一学期期末试卷
- 陕西国防工业职业技术学院《建筑外立面装饰设计》2024-2025学年第一学期期末试卷
- (2025年标准)承包小工程协议书
- (2025年标准)承包股份协议书
- 河南工业和信息化职业学院《压力管理与体育》2024-2025学年第一学期期末试卷
- 慢性疾病管理与健康指导手册
- 生物竞赛辅导 动物行为学第七章 行为发育(38)课件
- 新生入学登记表新生入学情况表word模版
- 《高情商沟通》课件
- 《新锅规》锅炉产品合格证
- 医院产后出血的应急演练脚本
- 中药熏洗法操作评分标准与流程
- 光伏发电项目监理工作制度
- GB∕T 25119-2021 轨道交通 机车车辆电子装置
- 监理平行检查方案
- 喷塑工序作业指导书(最新)
评论
0/150
提交评论