算术运算指令与逻辑运算指令

算术运算指令与逻辑运算指令

ID:39890724

大小:639.50 KB

页数:35页

时间:2019-07-14

算术运算指令与逻辑运算指令_第1页
算术运算指令与逻辑运算指令_第2页
算术运算指令与逻辑运算指令_第3页
算术运算指令与逻辑运算指令_第4页
算术运算指令与逻辑运算指令_第5页
资源描述:

《算术运算指令与逻辑运算指令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六讲算术运算指令与逻辑运算指令TMS320C54X共有129条指令。按功能分为4大类:•算术运算指令;•逻辑运算指令;•程序控制指令;•存储和装入指令。1.算术运算指令(79条分为6小类)•加法指令(ADD);•减法指令(SUB);•乘法指令(MPY);•乘加指令(MAC)和乘减指令(MAS);•双数/双精度指令(DADD、DSUB);•特殊操作指令(ABDST、SQDST)。(1)加法指令(13条)《附录ATMS320C54X指令集》说明:①不同的加法指令用途不同;ADD:不带进位;ADD《:不带进位、移位;ADDC:带进位;ADDM:专用于立即数;ADDS:无符号数;AddI

2、nstructions附录A加法指令举例【例1】ADD*AR3+,14,A;;指令受SXM和OVM状态标志的影响,;指令执行结果影响C和OVA/OVB;加法指令举例【例1】ADD*AR3+,14,A;指令受SXM和OVM状态标志的影响,;指令执行结果影响C和OVA/OVB;(2)减法指令(13条)《附录A》说明:SUBS用于无符号数的减法运算;SUBB用于带借位的减法运算(如32位扩展精度的减法);SUBC为条件减法.减法指令举例【例2】SUBB*AR1+,B;;指令受C和OVM状态标志的影响,;指令执行结果影响C和OVsrc;减法指令举例【例2】SUBB*AR1+,B;;指令受C

3、和OVM状态标志的影响,;指令执行结果影响C和OVsrc;(3)乘法指令(10条)《附录A》说明:①不同的乘法指令完成不同的功能MPY:普通乘指令;MPYR:带四舍五入指令;MPYA:A累加器高端参与乘法;MPYU:无符号乘法;SQUR:平方;②小数乘法将FRCT设置为1,系统自动将乘积结果左移1位。乘法指令举例【例3】MPY13,A;P164;指令受FRCT和OVM状态标志的影响,;指令执行结果影响OVdst;(4)乘加和乘减指令(15条)《附录A》【例4】MAC*AR5+,A;A+(AR5)*T→A,AR5=AR5+1(4)乘加和乘减指令(15条)《附录A》【例4】MAC*AR

4、5+,A;A+(AR5)*T→A,AR5=AR5+1MAC*AR3+,*AR4+,A;?Example5:MACR*AR5+,*AR6+,A,BExample5:MACR*AR5+,*AR6+,A,B问题?请用ADD和MPY指令代替MAC*AR5+,#1234h,AMPY*AR5+,#1234h,BADDB,A?什么区别?(5)长操作数指令(6条)《附录A》DADDLmem,src[,dst];P149例6:DADD*AR3–,A,B;ST1中的C16决定了指令的执行方式。例6:DADD*AR3–,A,B;ST1中的C16决定了指令的执行方式。(6)特殊应用指令(15条)《附录A》

5、•求绝对值•求累加器指数•求累加器的最大/小值•归一化•求多项式的值•求两点之间距离的平方•求最小均方值•对称有限冲击响应滤波器等FIRSXmem,Ymem,pmad;B=B+A(32~16)*pmad,A=(Xmem+Ymem)<<16MAXdstdst=max(A,B)MINdstdst=min(A,B)例7:FIRS*AR3+,*AR4+,COEFFS;P154;指令受FRCT,SXM和OVM状态标志的影响,;指令执行结果影响C和OVdst;例7:FIRS*AR3+,*AR4+,COEFFS;指令受FRCT,SXM和OVM状态标志的影响,;指令执行结果影响C和OVdst;2.

6、逻辑指令(5小类)•与指令(AND);•或指令(OR);•异或指令(XOR);•移位指令(ROL);•测试指令(BITF)。(1)与、或、异或指令(共15条)《附录A》(2)移位指令和测试指令(共11条)《附录A》与指令(AND)ANDSmem,srcAND#lk[,SHFT],src[,dst]AND#lk,16,src[,dst]ANDsrc[,SHIFT][,dst]ANDM#lk,Smem例8:ANDA,3,B例8:ANDA,3,B例9:BITT*AR7+0例9:BITT*AR7+0实例程序:建立项目工程文件example1,使之实现计算y=mx+b;.title"exam

7、ple1.asm".mmregsSTACK.usect"STACK",10H;堆栈的设置.bssx,1;为变量分配4个字的存储空间.bssm,1.bssb,1.bssy,1.def_c_int00.datatable.word15,3,20;x,m,b.text_c_int00:STM#0,SWWSR;插入0个等待状态STM#STACK+10H,SP;设置堆栈指针STM#x,AR1;AR1指向xRPT#2MVPDtable,*AR1+;把程序存储器中的数据移动到数据存

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。