第10讲 控制转移类指令(一)教案

第10讲 控制转移类指令(一)教案

ID:6786876

大小:53.00 KB

页数:3页

时间:2018-01-25

第10讲 控制转移类指令(一)教案_第1页
第10讲 控制转移类指令(一)教案_第2页
第10讲 控制转移类指令(一)教案_第3页
资源描述:

《第10讲 控制转移类指令(一)教案》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第十讲控制转移类指令§3-5控制转移类指令作用:改变程序计数器PC的值,从而改变程序执行方向。分为四大类:无条件转移指令;条件转移指令;调用指令;返回指令。一、无条件转移指令LJMPaddr16AJMPaddr11SJMPrelJMP@A+DPTRLJMPaddr16;长跳转转移目的地址addr16(PC);0000H~FFFFH,64KBAJMPaddr11;绝对转移转移目的地址的形成:先(PC)(PC)+2;后PC15~11不变,PC10~0addr10~064KB=216=25×211=32×2KB转移目的地址与(PC)+2在同一个2KB范围内。SJ

2、MPrel;短转移,相对寻址。转移目的地址=(PC)+2+rel,所以rel=转移目的地址-(PC)-2但,实际使用中常写成SJMPaddr16,汇编时会自动转换出rel。JMP@A+DPTR;间接转移,散转移指令。转移目的地址=(@A)+(DPTR)本指令不影响标志位,不改变@A及DPTR中的内容。常用于多分支程序结构中,可在程序运行过程中动态地决定程序分支走向。例1、设A中为键值,试编写按键值处理相应事件的程序段。解:MOVDPTR,#KYEGMOVB,#03HMULABJMP@A+DPTR·KYEG:LJMPKYEG0LJMPKYEG1·画图比较LJ

3、MP、AJMP、SJMP、JMP转移的起点和范围。二、调用指令LCALLaddr16;长调用ACALLaddr11;绝对调用LCALLaddr16;转移范围64KB,不影响标志位。执行中自动完成如下过程:(PC)(PC)+3(SP)(SP)+1((SP))(PC7~0),保护断点地址低字节;(SP)(SP)+2((SP))(PC15~8),保存断点地址高字节;(PC)addr16,目的地址送PC,转子程序。例2、设(SP)=07H,(PC)=2100H,子程序首地址为3456H,执行:LCALL3456HMOVA,20H······画出执行过程示意图。执行

4、结果:(SP)=09H,(09H)=21H,(08H)=03H,(PC)=3456HACALLaddr11;转移范围与(PC)+2在同一个2KB内。不影响任何标志位,执行中机器自动完成下列过程:(PC)(PC)+2(SP)(SP)+1((SP))(PC7~0)(SP)(SP)+2((SP))(PC15~8)(PC10~0)addr10~0三、返回指令从子程序返回主程序。RET;调用子程序返回;RETI;中断子程序返回。画图比较两种返回指令含义上的异同点,结论:RET返回地址事先已知,而RETI的返回地址在程序执行中产生的,不固定。不影响标志位,但PSW不能

5、恢复到中断前的状态。其机器自动操作过程如下:(PC15~8)((SP))(SP)(SP)-1(PC7~0)((SP))(SP)(SP)-2例3、设(SP)=0BH,(0AH)=23H,(0BH)=01H执行:RET结果;(SP)=09H,(PC)=0123H(返回主程序)空操作指令NOP;空操作不执行任何操作,仅仅使(PC)+1,继续执行下条指令,不影响标志位,在ROM中占一个字节。用于延时调整。小结:1、长转移与长调用指令有何区别?2、长转移、短转移及相对转移的跳转范围有什么不同?

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

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

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