- 1、本文档共51页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章TMS320C54X指令系统2资料
4.2 指令系统 利用SUBC实现除法: 在C54X中没有提供专门的除法指令,一般有两种方法来完成除法: ①用乘法来代替,除以某个数相当于乘以其倒数,所以先求出其倒数,然后相乘。这种方法对于除以常数特别适用。 ②使用SUBC指令,重复16次减法完成除法运算。 (5)测试指令 例: BITF 5, #00FFH 例:CMPM *AR4+, #0404H 4、程序控制指令 程序控制指令用于控制程序的流程,也就是指令的执行顺序。按照功能的不同可以将程序控制类指令分为7组: (1)跳转(Branch)指令; (2)调用(Call)指令; (3)中断(Interrupt)指令; (4)返回(Return)指令; (5)重复(Repeat)指令; (6)堆栈操作指令; (7)其他程序控制指令; 4.2 指令系统 (1)分支跳转指令 跳转指令可以改变程序指针PC的值,使程序从一个地址跳转到另一个地址执行。这种跳转可以是无条件的跳转,也可以是有条件的跳转。 4、程序控制指令 (1)分支跳转指令 以BC为例:BC pmad, cond[,cond[,cond]] ;if(cond(s)) Then PC=pmad(15-0), else PC=PC+2 其中pmad为16比特的程序地址,范围0到65535; Cond:跳转的条件,包括:BIO为低,C=1, TC=1,(A/B)=0 等等; 例: (2)调用指令 调用指令同样可以改变程序指针PC的值,使程序从一个地址跳转到另一个地址执行。但与跳转指令不同的是,DSP在执行完被调用的程序段后要返回起跳处继续执行原来的程序。 4、程序控制指令 下面以CALL为例: CALL pmad ; SP=(SP-1), TOS=(PC+2), PC=pmad(15-0) 其中pmad为目的程序地址;SP为堆栈指针;TOS为堆栈的顶端; (2)调用指令 例:CALL 3333H (3)中断指令 中断指令同样可以改变程序指针PC的值,使程序从一个地址跳转到另一个地址执行。但与调用指令一样,DSP在执行完中断服务程序后要返回发生中断的地方继续执行原来的程序。当发生中断时,DSP会置INTM为1,屏蔽所有可屏蔽中断,并在中断标志寄存器IFR中设置相应的中断标志。 4、程序控制指令 (3)中断指令 INTR K ;SP=(SP-1), TOS=(PC+1), PC=IPTR(15-7)+K2, INTM=1 K为C54x DSP的中断号码(0~31);IPTR为9比特长的中断向量指针; 执行该指令会产生的状态位:INTM和中断标志寄存器IFR中相应的位。 例:INTR 3 (4)返回指令 返回指令用于在执行完被调用的程序段或中断服务程序后,返回到调用指令或发生中断的地方,使DSP能继续执行原来的程序。 4、程序控制指令 (4)返回指令 例:RETE ; PC=TOS, SP=(SP+1), INTM=0 影响该指令执行的状态位:无 执行该指令会产生的状态位:中断屏蔽位INTM (5)重复指令 重复指令可以使DSP重复执行一条指令或一段指令; 4、程序控制指令 (5)重复指令 RPT #K ;单指令重复,RC= #K 例: 例:RPT #9 ADD *AR2,A (6)堆栈操作指令 堆栈操作指令可以对堆栈进行压入(PUSH)和弹出(POP)操作,相应的操作数可以是数据存储单元Smem或存储映射寄存器MMR。 4、程序控制指令 (6)堆栈操作指令 以PSHD和POPM为例: PSHD Smem ; SP=(SP-1), TOS=Smem POPM MMR ; MMR=TOS, SP=(SP+1) , Smem:16位数据存储器操作数;MMR为存储映射寄存器; 例:PSHD *AR3+ 例:POPM AR5 (6)堆栈操作指令 * 第4章 TMS320C54x指令系统 4.1 寻址方式 4.2 指令系统 TMS320C54X DSP的指令按操作类型可以分为以下4类: 装入与存储(Load and store)指令; 算术(Arithmetic)运算指令; 逻辑(Logical)运算指令; 程序控制(Program-control)指令; 装入与存储指令 装入和存储指令用于完成数据的读入和保存, 按照功能可以分为:
文档评论(0)