为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

DSP指令一览表

2011-10-26 8页 doc 378KB 74阅读

用户头像

is_578766

暂无简介

举报
DSP指令一览表DSP指令一览表  附录6  TMS320C54x 指令系统一览表(按指令功能排列) 一、算术运算指令 1. 加法指令 句    法 表  达  式 说    明 字数 周期 ADD  Smem,src src=src+Smem 操作数加至累加器 1 1 ADD  Smem,TS,src src=src+Smem<
DSP指令一览表
DSP指令一览  附录6  TMS320C54x 指令系统一览表(按指令功能排列) 一、算术运算指令 1. 加法指令 句    法 表  达  式 说    明 字数 周期 ADD  Smem,src src=src+Smem 操作数加至累加器 1 1 ADD  Smem,TS,src src=src+Smem<规定
的位域 2 2 BITT  Smem TC=Smem(15—T(3—O)) 测试由T寄存器指定的位 1 1 CMPM  Smem,#lk TC=(Smem==#lk) 存储单元与长立即数比较 2 2 CMPR  CC,ARx Compare ARx with AR0 辅助寄存器ARx与ARO比较 1 1   三、程序控制指令 1. 分支转换指令 句    法 表  达  式 说    明 字数 周期 B[D]  pmad PC=pmad(15—0) 无条件分支转移 2 4/[2※] BACC[D]  src PC=src(15—0) 按累加器规定的地址转移 1 6/[4※] BANZ[D]  pmad,Sind if(Sind≠0) then PC=pmad(15—0) 辅助寄存器不为O就转移 2 4?/2§/[2※] BC[D]  pmad,cond[,cond[,cond]] if(cond(s)) then PC=pmad(15—0) 条件分支转移 2 5?/3§/[3※] FB[D]  extpmad PC=pmad(15—0), XPC=pmad(22—16) 无条件远程分支转移 2 4/[2※] FBACC[D]  src PC=src(15—0),XPC=src(22—16) 按累加器规定的地址远程分支转移 1 6/[4※]   2. 调用指令 句    法 表  达  式 说    明 字数 周期 CALA[D]  src --SP=PC,PC=src(15-0) 按累加器规定的地址调用子程序 1 6/[4※] CALL[D]  pmad --SP=PC,PC=pmad(15-0) 无条件调用子程序 2 4/[2§] CC[D]  pmad,cond[,cond[,cond]] if(cond(s))then--SP=PC, PC=pmad(15-0) 有条件调用子程序 2 5?/3§/[3※] FCALA[D]  src --SP=PC,--SP=XPC, PC=src(15-0),XPC=src(22-16) 按累加器规定的地址远程调用子程序 1 6/[4※] FCALL[D]  extpmad --SP=PC,--SP=XPC, PC=pmad(15-0),XPC=pmad(22-16) 无条件远程调用子程序 2 4[2※]  注:?条件“真”,§条件“假”,※延迟指令。 3. 中断指令 句    法 表  达  式 说    明 字数 周期 INTR  K --SP=PC,PC=IPTR(15—7)+K<<2,INTM=1 不可屏蔽的软件中断,关闭其他可屏蔽中断 1 3 TRAP  K --SP=PC,PC=IPTR(15—7)+K<<2 不可屏蔽的软件中断,不影响INTM位 1 3   4. 返回指令 句    法 表  达  式 说    明 字数 周   期 FRET[D] XPC=SP++,PC=SP++ 远程返回 1 6/[4※] FRETE[D] XPC=SP++,PC=SP++,INTM=O 开中断,从远程中断返回 1 6/[4※] RC[D]  cond[,cond[,cond]] if(cond(s)) then PC=SP++ 条件返回 1 5?3§/[3※] RET[D] PC=SP++ 返回 1 5/[3※] RETE[D] PC=SP++,INTM=O 开中断,从中断返回 1 5/[3※] RETF[D] PC=RTN,SP++,INTM=O 开中断,从中断快速返回 1 3/[1※]  注:?条件“真”,§条件“假”,※延迟指令。 5. 重复指令 句    法 表  达  式 说    明 字数 周  期 RPT  Smem Repeat single,RC=Smem 重复执行下条指令(Smem)+1次 1 1 RPT  #K Repeat single,RC=#K 重复执行下条指令k十1次 1 1 RPT  #lk Repeat single,RC=#lk 重复执行下条指令#lk+1次 2 2 RPTB[D]  pmad Repeat block,RSA=PC+2[4#],REA=pmad—1 块重复指令 2 4/[2※] RPTZ  dst,#lk Repeat single,RC=#lk,dst=O 重复执行下条指令,累加器清O 2 2  注:?条件“真”,§条件“假”,※延迟指令。 6. 堆栈管理指令 句    法 表  达  式 说    明 字数 周期 FRAME  K SP=SP+K,-128≤k≤127 堆栈指针偏移一个立即数值 1 1 POPD  Smem Smem=SP++ 将数据从栈顶弹出至数据存储器 1 1 POPM  MMR MMR=SP++ 将数据从栈顶弹出至MMR 1 1 PSHD  Smem --SP=Smem 将数据压人堆栈 1 1 PSHM  MMR --SP=MMR 将MMR压人堆栈 l 1   7. 其他程序控制指令   句    法 表  达  式 说    明 字数 周期 IDLE  K idle(K),1≤k≤3 保持空转状态,直到中断发生 1 4 MAR  Smem If  CMPT=0,then modify ARx, ARP is unchanged If  CMPT=1 and ARx≠AR0,then modify ARx, ARP=x If  CMPT=1 and ARx=AR0,then modify AR(ARP), ARP is unchanged 修改辅助寄存器 1 1 NOP no operation 空操作 1 1 RESET software reset 软件复位 1 3 RSBX  N,SBIT STN(SBIT)=0 状态寄存器位复位 1 1 SSBX  N,SBIT STN(SBIT)=1 状态寄存器位置位 1 1 XC  n,cond[,cond[,cond]] If(cond(s))then execute the next n instructions;n=1or2 有条件执行 1 1 注:?条件“真”,§条件“假”,※延迟指令。   四、加载和存储指令 1. 加载指令 句    法 表  达  式 说    明 字数 周期 DLD  Lmem,dst dst=Lmem 双精度/双16位长字加载累加器 1 1 LD  Smem,dst dst=Smem 将操作数加载到累加器 1 1 LD  Smem,TS,dst dst=Smem<src(15—0) then Smem=src(31—16) If  src(31—16)≤src(15—0) then Smem=src(15—0) 比较选择并存储最大值 1 1 SACCD  src,Xmem,cond If(cond)  Xmem=src<<(ASM—16) 有条件存储累加器值 1 1 SRCCD  Xmem,cond If(cond)  Xmem=BRC 有条件存储块重复计数器 1 1 STRCD  Xmem,cond If(cond)  Xmem=T 有条件存储T寄存器值 1 1   4. 并行加载和存储指令 句    法 表  达  式 说    明 字数 周期 ST  src,Ymem Ymem=src<<(ASM—16) 存储累加器并行加载累加器 1 1 ||LD  Xmem,dst ||dst=Xmem<<16 ST  src,Ymem Ymem=src<<(ASM—16) 存储累加器并行加载T寄存器 1 1 ||LD  Xmem,T ||T=Xmem   5. 并行加载和乘法指令 句    法 表  达  式 说    明 字数 周期 LD  Xmem,dst dst=Xmem<<16 加载累加器并行乘法累加运算 1 1 ||MAC  Ymem,dst_ ||dst_=dst_+T*Ymem LD  Xmem,dst dst=Xmem<<16 加载累加器并行乘法累加运算(带舍入) 1 1 ||MACR  Ymem,dst_ ||dst_=rnd(dst_+T*Ymem) LD  Xmem,dst dst=Xmem<<16 加载累加器并行乘法减法运算 1 1 ||MAS  Ymem,dst_ ||dst_=dst_—T*Ymem LD  Xmem,dst dst=Xmem<<16 加载累加器并行乘法减法运算(带舍入) 1 1 ||MASR  Ymem,dst_ ||dst_=rnd(dst_—T*Ymem)   6. 并行存储和加 / 减法指令 句    法 表  达  式 说    明 字数 周期 ST  src,Ymem ||ADD  Xmem,dst Ymem=src<<(ASM—16) ||dst=dst_+Xmem<<16 存储累加器值并行加法运算 1 1 ST  src,Ymem ||SUB  Xmem,dst Ymem=src<<(ASM—16) ||dst=(Xmem<<16)—dst_ 存储累加器值并行减法运算 1 1   7. 并行存储和乘法指令 句    法 表  达  式 说    明 字数 周期 ST  src,Ymem Ymem=src<<(ASM—16) 存储累加器并行乘法累加运算 1 1 ||MAC  Xmem,dst ||dst=dst+T*Xmem ST  src,Ymem ||MACR  Xmem,dst Ymem=src<<(ASM—16) ||dst=rnd(dst+T*Xmem) 存储累加器并行乘法累加运算(带舍入) 1 1 ST  src,Ymem Ymem=src<<(ASM—16) 存储累加器并行乘法减法运算 1 1 ||MAS  Xmem,dst ||dst=dst—T*Xmem ST  src,Ymem Ymem=src<<(ASM—16) 存储累加器并行乘法减法运算(带舍入) 1 1 ||MASR  Xmem,dst ||dst=rnd(dst—T*Xmem) ST  src,Ymem Ymem=src<<(ASM—16) 存储累加器并行乘法运算 1 1 ||MPY  Xmem,dst ||dst=T*Xmem   8. 其他加载和存储指令 句    法 表  达  式 说    明 字数 周期 MVDD  Xmem,Ymem Ymem=Xmem 数据存储器内部传送数据 1 1 MVDK  Smem,dmad dmad=Smem 数据存储器内部指定地址传送数据 2 2 MVDM  dmad,MMR MMR=dmad 数据存储器向MMR传送数据 2 2 MVDP  Smem,pmad pmad=Smem 数据存储器向程序存储器传送数据 2 4 MVKD  dmad,Smem Smem=dmad 数据存储器内部指定地址传送数据 2 2 MVMD  MMR,dmad dmad=MMR MMR向指定地址传送数据 2 2 MVMM  MMRx,MMRy MMRy=MMRx MMRx向MMRy传送数据 1 1 MVPD  pmad,Smem Smem=pmad 程序存储器向数据存储器传送数据 2 3 PORTR  PA,Smem Smem=PA 从PA口读入数据 2 2 PORTW  Smem,PA PA=Smem 向PA口输出数据 2 2 READA  Smem Smem=Pmem(A) 按累加器A寻址读程序存储器并存入数据存储器 1 5 WRITA  Smem Pmem(A)=Smem 将数据按累加器A寻址写入程序存储器 1 5    
/
本文档为【DSP指令一览表】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索