第七讲 程序控制指令与存储装入指令111201.ppt

第七讲 程序控制指令与存储装入指令111201.ppt

ID:48525061

大小:4.39 MB

页数:30页

时间:2020-01-23

第七讲 程序控制指令与存储装入指令111201.ppt_第1页
第七讲 程序控制指令与存储装入指令111201.ppt_第2页
第七讲 程序控制指令与存储装入指令111201.ppt_第3页
第七讲 程序控制指令与存储装入指令111201.ppt_第4页
第七讲 程序控制指令与存储装入指令111201.ppt_第5页
资源描述:

《第七讲 程序控制指令与存储装入指令111201.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第六讲程序控制指令与存储装入指令TMS320C54X共有129条指令。按功能分为4大类:•算术运算指令;•逻辑运算指令;•程序控制指令;•存储和装入指令。3.程序控制指令(7小类)•分支指令(B,BC);•调用指令(CALL);•返回指令(RET);•中断指令(INTR,TRAP);•重复指令(RPT);•堆栈操作指令(FRAME,POP);•其他程序控制指令(IDLE,NOP)。(1)分支指令(6条)《附录A》含义:根据条件判断改写PC值,使程序发生分支转移。两种形式:有条件分支转移和无条件转移。常用指令:B[D]、BACC[D];BC[D]、BANZ[D]例15:BANZ[D

2、]pmad,Sind若当前辅助寄存器ARx不为0,则pmad值赋给PC,否则PC值加2。若为延迟方式,此时紧跟该指令的两条单字指令或一条双字指令先被取出执行,然后程序再跳转。该指令不能被循环执行。如:BANZ2000h,*AR3-例16:条件分支转移指令BC举例。P145表7-3BCnew,AGT,AOV;若累加器A>0且溢出,则转至new,否则往下执行。单条指令中的多个条件是“与”的关系。请问:若将上一条指令改为“若累加器A大于0或溢出,则转移至new”,指令应该如何写?BCnew,AGTBCnew,AOV例17:计算.bssx,5;为变量分配6个字的存储空间.bssy,1ST

3、M#x,AR1;AR1指向xSTM#4,AR2;设AR2初值为4LD#0,Aloop:ADD*AR1+,ABANZloop,*AR2-;当AR2不为0时转移,AR2-1→AR2STLA,@y本例中用AR2作为循环计数器,设初值为4,共执行5次加法。也就是说,应当用迭代次数减1后加载循环计数器。(2)调用和返回指令(6条)《附录A》例18:CALL[D]pmad返回地址压入栈顶(TOS)保存,无延时时返回地址为PC+2,有延时时返回地址为PC+4(延时2字);将pmad值赋给PC实现调用。如:CALL3333h(3)重复指令(5条)《附录A》RPT(重复下条指令)、RPTZ(累加器

4、清0并重复下条指令)RPTB(块重复指令)。(1)重复执行单条指令含义:RPT或RPTZ允许重复执行紧随其后的那一条指令。重复次数:如重复执行n次,则重复指令中计数值为n-1。说明:与BANZ指令进行循环相比,效率要高得多。特别是对于那些乘法累加和数据传送的多周期指令(如MAC、MVDK、MVDP和MVPD等),在执行一次之后就变成了单周期指令,大大提高了运行速度。例19:对数组进行初始化。x[5]={0,0,0,0,0}主要程序(部分)如下:.bssx,5STM#x,AR1LD#0,ARPT#4STLA,*AR1+或者.bssx,5STM#x,AR1RPTZA,#4STLA,*

5、AR1+(2)块程序重复操作RPTB含义:RPTB将重复操作的范围扩大到任意长度的循环回路。重复次数:先加载到块重复计数器(BRC)。循环开始地址(RSA):是RPTB指令的下一行;结束地址(REA):由RPTB指令的操作数规定。特点:对任意长的程序段的循环开销为0;其本身是一条2字4周期指令;RPT指令一旦执行,不会停止操作,即使有中断请求也不响应;而RPTB指令是可以响应中断的。例20:RPTB[D]pmad;块循环指令。循环次数必须在指令执行前装入BRC。执行命令时,块循环起始寄存器RSA装入PC+2(若有D后缀时为PC+4),块循环尾地址寄存器REA中装入pmad。ST#

6、99,BRC;循环计数器赋值RPTBend_block-1;end_block为循环块的底部例21:对数组x[5]中的每个元素加1。.bssx,5begin:LD#1,16,BSTM#4,BRC;BRC赋值为4STM#x,AR4RPTBnext-1;next-1为循环结束地址ADD*AR4,16,B,ASTHA,*AR4+next:LD#0,B…用next-1作为结束地址是恰当的。如果用循环回路中最后一条指令(STH指令)的标号作为结束地址,若最后一条指令是单字指令也可以,若是双字指令,就不对了。(4)中断指令(2条)《附录A》例22:INTR3;(即K=3)•将PC值压入栈顶;

7、•由K确定的中断向量赋给PC,执行该中断服务子程序。•中断标志寄存器(IFR)对应位清零且INTM=1(禁止可屏蔽中断)。(5)堆栈操作指令(5条)《附录A》堆栈:16位堆栈指针(SP)寻址的软件堆栈。堆栈是一个特殊的存储区域,遵循先进后出的原则,当向堆栈中压入数据时,堆栈从高地址向低地址增长,堆栈指针SP始终指向栈顶。堆栈用法:压入操作:SP先减1,然后再将数据压入栈顶。弹出操作:数据弹出后,再将SP加1。堆栈设置:size.set100stack.usect“STK”,siz

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

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

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