ImageVerifierCode 换一换
格式:DOCX , 页数:176 ,大小:105.31KB ,
资源ID:5619588      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5619588.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(附录 TMS320C54X汇编语言指令系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

附录 TMS320C54X汇编语言指令系统.docx

1、附录 TMS320C54X汇编语言指令系统 指令系统TMS320C54x指令系统共有指令130条,由于操作数的寻址方式不同,派生至205条。按指令的功能,可以将C54x指令系统分成4类:算术运算指令、逻辑运算指令、程序控制指令、加载和存储指令。下面分别对各类指令进行介绍。、算术运算指令算术运算指令分为加法指令(ADD),减法指令(SUB),乘法指令(MPY),乘加指令(MAC),乘减指令(MAS),双数/双精度指令(DADD,DSUB)和特殊操作指令(ABDST,SQDST)。1加法指令加法指令共有13条,如表1.1.1所示。表1.1.1 加法指令语 法表达式说 明字长周期数ADD Smem,

2、srcsrc=src+Smem操作数加至累加器11ADD Smem ,TS ,srcsrc=src+SmemTS操作数移位后加至累加器11ADD Smem ,16,scr,dstsrc=src+Smem16操作数左移16位后加至累加器11ADD Smem,SHIFT,src,dstsrc=src+SmemSHIFT操作数移位后加至累加器22ADD Xmem ,SHFT,srcdst=dst+XmemSHFT操作数移位后加至累加器11ADD Xmem,Ymem,dstdst=Xmem16+Ymem16两个操作数分别左移16位后然后相加11ADD #lk,SHFT,src,dstdst=src+#

3、lkSHFT长立即数移位后加至累加器22ADD #lk,16,src,dstdst=src+#lk16长立即数左移16位后加至累加器22ADD src,SHIFT,dstdst=dst+srcSHIFT累加器移位后相加11ADD src,ASM,dstdst=dst+srcASM操作数带进位加至累加器11ADDC Smem,srcsrc=src+Seme+C带进位加法11ADDM #lk,SmemSmem=Smem+#lk长立即数加至存储器22ADDS Smem,srcsrc=src+uns(Smem)符号位不扩展的加法11整数分有符号数和无符号数两种格式,表示有符号数时,其最高位表示符号,最

4、高位为0表示其为正数,1表示为负数;无符号数其最高位仍做为数值位计算。例如,有符号数能够表示的最大的正数为07FFFh,等于32767,而0FFFFH表示最大的负数1;无符号数不能表示负数,它能够表示的最大的数为0FFFFh,等于十进制数的65535。小数符号和上面整数的表示一样,但必须注意如何安排小数点的位置。2减法指令减法指令共有13条,见表1.1.2所示。表1.1.2 减法指令语 法表达式说 明字长周期数SUB Smem , srcsrc=srcSmem从累加器中减去操作数11SUB Smem ,TS ,srcsrc=srcSmemTS从累加器中减去移位后的操作数11SUB Smem ,

5、16,scr,dstdst=dstSmem16从累加器中减去左移16位后的操作数11SUB Smem,SHIFT,src,dstdst=srcSmemSHIFT操作数移位后与累加器相减22SUB Xmem ,SHFT,srcsrc=srcXmemSHIFT操作数移位后与累加器相减11SUB Xmem,Ymem,dstdst=Xmem16Ymem16两个操作数分别左移16位后相减11SUB #lk,SHFT,src,dstdst=dst#lkSHFT长立即数移位后与累加器相减22SUB #lk,16,src,dstdst=src#lk16长立即数左移16位后与累加器相减22SUB src,SHI

6、FT,dstdst=dstsrcSHIFT源累加器移位后与目的累加器相减SUB src,ASM,dstdst=dstsrcASM源累加器按ASM移位后与目的累加器相减11SUBB Smem,srcsrc=srcSmemC从累加器中减去带借位减操作数11SUBC Smem,srcif(srcSmem15)0src=(srcSmem15)1 + 1else src=src1有条件减法11SUBS Smem,srcsrc=srcuns(Smem)符号位不扩展的减法113乘法指令乘法指令共有10条,见表1.1.3。表1.1.3乘法指令语 法表达式说 明字长周期数MPY Smem,dstdst=T*Sm

7、emT寄存器值与操作数相乘11MPYR Smem,dstdst=rnd(T*Smem)T寄存器值与操作数相乘(带舍入)11MPY Xmem,Ymem,dstdst=Xmem*Ymem,T=Xmem两个操作数相乘11续表语 法表达式说 明字长周期数MPY Smem,#lk,dstdst=Smem*#lk,T=Smem长立即数与操作数相乘22MPY #1k,dstdst=T*#lk长立即数与T寄存器值相乘22MPYA dstdst=T*A(3216)T寄存器与累加器A高位相乘11MPYA SmemB=Smem*A(3216),T=Smem操作数与累加器A高位相乘11MPYU Smem ,dstds

8、t=uns(T)*uns(Smem)无符号数乘法11SQUR Smem,dstdst=Smem*Smem,T=Smem操作数的平方11SQUR A,dstdst=A(3216)*A(3216)累加器A高位的平方114乘加和乘减指令 乘加和乘减指令共有22条,见表1.1.4所示。表1.1.4 乘加和乘减指令语 法表达式说 明字长周期数MAC Smem,srcsrc=src+T*Smem操作数与T寄存器值相乘后加至累加器11MAC Xmem,Ymem,src,dstdst=src+Xmem*YmemT=Xmem两个操作数相乘后加至累加器11MAC #lk,src,dstdst=src+T*#lk长

9、立即数与T寄存器值相乘后加至累加器22MAC Smem,#lk,src,dstdst=src+Smem*#lkT=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=Xmem操作数与累加器A高位相乘后加至累加器B11MACA T,src,dstdst=src+T*A(3216)T寄存器值与累加器A

10、高位相乘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*pmadT=Smem,(Smem+1)=Smem操作数与程序存储器值相乘后累加并延迟23续表语 法表达式说 明字长周期数MACP Smem,pmad,srcSrcsrcSmem * pmadTSmem操作数与程序存储器值相乘后加至累加器23MACSU Xmem,Ymem,srcsrc

11、srcuns(Xmem) * YmemTXmem无符号数与有符号数相乘后加至累加器11MAS Smem,srcsrcsrcT * Smem从累加器中减去T寄存器值与操作数的乘积11MASR Xmem,Ymem,src,dstdstrnd(srcXmem * Ymem)TXmem从累加器中减去两操作数的乘积(带舍入)11MAS Xmem,Ymem,src,dstdstsrcXmem * YmemTXmem从源累加器中减去两操作数的乘积11MASR Smem ,srcsrcrnd(srcT * Smem)从累加器中减去T值与操作数的乘积(带舍入)11MASA Smem,BBBSmem * A(32

12、16)TSmem从累加器B中减去操作数与累加器A高位的乘积11MASA T,src,dstdstsrcT * A(3216)从源累加器中减去T寄存器值与累加器A高位乘积11MASAR T,src,dstdstrnd(srcT * A(3216)从源中减去T寄存器值与累加器A高位乘积(带舍入)11SQURA Smem ,srcsrcsrcSmem * SmemTSmem操作数平方并累加11SQURS Smem ,srcsrcsrcSmem * SmemTSmem从累加器中减去操作数的平方115双操作数指令双操作数指令共有6条,见表1.1.5所示。表1.1.5双操作数指令语 法表达式说 明字长周期

13、数DADD Lmem,src,dstif C16=0 ,dst=Lmem+srcif C16=1dst(3916)=Lmem(3116)+src(3116) dst(150)=Lmem(150)+src(150) 双精度/双16位数加至累加器11DADST Lmem,dstif C16=0,dst=Lmem+(T16+T)if C16=1 dst(3916)=Lmem(3116)+T dst(150)=Lmem(150)T双精度/双16位数与T寄存器值相加/减11续表语 法表达式说 明字长周期数DRSUB Lmem,srcif C16=0 ,src=Lmemsrcif C16=1src(391

14、6)=Lmem(3116)src(3116)src(150)=Lmem(150)src(150)双精度/双6位数中减去累加器值11DSADT Lmem,dstI C16=0,dst=Lmem(T16+T)If C16=1 dst(3916)=Lmem(3116)T dst(150)=Lmem(150)+T长操作数与T寄存器值相加减11DSUB Lmem,srcIf C16=0,src=srcLmem if C16=1 src(3916)=src(3116)Lmem(3116) src(150)=src(150)Lmem(150)从累加器中减去双精度/双16位数11DSUBT Lmem,dstI

15、f C16=0, dst=Lmem(T16+T)if C16=1 dst(3916)=Lmem(3116)T dst(150)=Lmem(150)T从长操作数中减去T寄存器值116特殊应用指令特殊应用指令共有15条,见表1.1.6所示。表1.1.6 特殊应用指令语 法表达式说 明字长周期数ABDST Xmem,YmemB=B+|A(3216)|,A=(XmemYmem)16绝对距离11ABS src,dsstdst=|src|累加器值取绝对值11CMPL src,dstdst=src累加器取反11DELAY Smem(Smem+1)=Smem存储器单元延迟11EXP srcT=number o

16、f sign bits(src)8求累加器中数据的指数11FIRS Xmem,Ymem.pmandB=B+A*pamd, 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累加器取反11续表语 法表达式说 明字长周期数NORM src,dstdst=srcTS, dst=norm(src,TS)归一化11PLOY SmemB=

17、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、 逻辑运算指令逻辑运算指令包括与指令(AND),或指令(OR),异或指令(XOR),移位指令(ROL)和测试指令(BITF)。1与指令与指令共5条,见表2.2.1。表2.2.1与指令语 法表达式说 明字长周期数AND Smem ,srcsrc=src&Smem操作数与累加器相与11AND #l

18、k,SHFT,src,dstdst=src&#lkSHFT长立即数移位后与累加器相与22AND #lk,16,src,dstdst=src&#lk16长立即数左移16位后与累加器相与22AND src,SHIFT,dstdst=dst&srcSHFT源累加器移位后与目的累加器相与11ANDM #lk,SmemSmem=Smem&#lk操作数与长立即数相与222或指令或指令共5条,见表2.2.2。表2.2.2 或指令语 法表达式说 明字长周期数OR Smem,srcsrc=src|Smem操作数与累加器相或11OR #lk,SHFT,src,dstdst=src|#lkSHFT长操作数移位后与累

19、加器相或22OR #lk 16, src ,dstdst=src|#lk16长操作数左移16位后与累加器相或22OR src,SHIFT,dstdst=dst|srcSHIFT源累加器移位后和目的累加器相或11ORM #lk,SmemSmem=Smem|#lk操作数和长立即数相或223异或指令异或指令共5条,见表2.2.3。表2.2.3 异或指令语 法表达式说 明字长周期数XOR Smem,srcsrc=srcSmem操作数和累加器相异或11XOR #lk,SHFT,src,dstdst=src#lkSHFT长立即数移位后和累加器相异或22XOR #lk,16,src,dstdst=src#l

20、k16长立即数左移16位后和累加器相异或22XOR src,SHIFT,dstdst=dstsrcSHIFT源累加器移位后和目的累加器相异或11XORM #lk,SmemSmem=Smem#lk操作数和长立即数相异或224移位指令移位指令共6条,见表2.2.4。表2.2.4 移位指令语 法表达式说 明字长周期数ROL srcRotate left with carry in累加器经进位位循环左移11ROL TC srcRotate left with TC in累加器经TC位循环左移11ROR srcRotate right with carry in累加器经进位位循环右移11SFTA src

21、,SHIFT,dstdst=srcSHIFTarithmetic shift累加器算术移位11SFTC srcif src(31)=src(30) then src=srcl累加器条件移位11SFTL src,SHIFT,dstdst=srcSHIFTlogical shift累加器逻辑移位115测试指令测试指令共5条,见表见表2.2.5。表2.2.5测试指令语 法表达式说 明字长周期数BIT Xmem,BITCTC=Xmem(15BITC)测试指定位11BITF Smem,#lkTC=(Smem&#lk)测试由立即数指定的位22BITT SmemTC=Smem(15T(30)测试由T寄存器指

22、定的位11CMPM Smem,#lkTC=(Smem=#lk)存储单元与长立即数比较22CMPR CC,ARxCompare ARx with AR0辅助寄存器ARx与AR0比较11、 程序控制指令程序控制指令包括分支指令(B,BC),调用指令(CALL),中断指令(INTR,TRAP),返回指令(RET),重复指令(RPT),堆栈操作指令(FRAME,POP),其它程序控制指令(IDLE,NOP)。分别例于下列表中。1分支指令分支指令共6条,见表3.3.1。表3.3.1分支指令语 法表达式说 明字长周期数BD pmadPC=pmad(150)无条件分支转移24/2*BACCD srcPC=s

23、rc(150)按累加器规定地址转移16/4*BANZD pmad, Sindif(Sind(s)0) then PC=pmad(150)辅助寄存器不为0转移24/2/2*BCD pmad,cond cond,condif(cond(s) then PC=pmad(150)条件分支转移25/3/3*FBD extpmadPC=pmad(150) ,XPC=pmad(2216)无条件远程分支转移24/2*FBACCD srcPC=src(150) , XPC=src(2216)按累加器的地址远程分支转移16/4*条件为真,条件为假,*延迟指令2调用指令调用指令共5条,见表3.3.2。表3.3.2

24、调用指令语 法表达式说 明字长周期数CALAD src-SP=PC PC=src(150)按累加器的地址调子程序16/4*CALLD pmad-SP=PCPC=pmad(150)无条件调用子程序24/2CCD pmad,condcond,condif(cond(s) then -SP=PC PC=pmad(150)有条件调用子程序25/3/3*FCALAD src-SP=PC,-SP=XPCPC=src(150)XPC=src(2216)按累加器的远程调子程序16/4*FCALLD extpmad-SP=PC,-SP=XPCPC=pmad(150)XPC=pmad(2216)无条件远程调用子程

25、序242*3中断指令中断指令有2条,见下表。表3.3.3中断指令语 法表达式说 明字长周期数INTR K-SP=PCPC=IPTR(157)+K2INTM=1非屏蔽软件中断,关闭其他可屏蔽中断13TRAP K-SP=PCPC=IPTR(157)+K2非屏蔽软件中断,不影响INTM位134返回指令返回指令共有6条,见下表。表3.3.4 返回指令语 法表达式说 明字长周期数FRETDXPC=SP+,PC=SP+远程返回16/4*FRETEDXPC=SP+,PC=SP+ INTM=0开中断,从远程中断返回16/4*RCD cond,cond ,condIf(cond(s) then PC=SP+条件返回15/3/3*RETDPC=SP+返回15/3*RETEDPC=SP+,INTM=0开中断,从中断返回15/3*RETFDPC=RTN,SP+,INTM=0开中断,从中断快速返回13/1*5重复指令重复指令共5条,见下表。表3.3.5 重复指令语 法表达式说 明字长周期数RPT Smem重复执行一条指令, RC=Smem重复执行下条

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1