第2章8086的指令系统三.ppt
《第2章8086的指令系统三.ppt》由会员分享,可在线阅读,更多相关《第2章8086的指令系统三.ppt(60页珍藏版)》请在优知文库上搜索。
1、第第 2 章章 8086的指令系统的指令系统(三)(三)22.4 控制转移类指令控制转移类指令n控制转移类指令用于实现分支、循环、过程等程序结构,是仅次于传送指令的常用指令重点掌握:JMP/Jcc/LOOP CALL/RETINT n/IRET 常用系统功能调用一般了解:LOOPZ/LOOPNZ INTO 控制转移类指令通过改变控制转移类指令通过改变IP(和(和CS)值,实现程序执行顺序的改变值,实现程序执行顺序的改变32.4.1 无条件转移指令无条件转移指令n只要执行无条件转移指令只要执行无条件转移指令JMP,就使程序转到,就使程序转到指定的目标地址处,从目标地址处开始执行指指定的目标地址处
2、,从目标地址处开始执行指令令n操作数操作数label是要转移到的是要转移到的目标地址(目的地目标地址(目的地址、转移地址址、转移地址)JMP labelJMP label;程序转向;程序转向labellabel标号指定的地址标号指定的地址4目标地址的范围:段内目标地址的范围:段内n段内转移近转移(near)q在当前代码段64KB范围内转移(-3276832767)q不需要更改CS段地址,只要改变IP偏移地址n段内转移短转移(short)q转移范围可以用一个字节表达,在段内128127范围的转移代码段代码段代码段代码段5目标地址的范围:段间目标地址的范围:段间n段间转移远转移(far)q从当前代
3、码段跳转到另一个代码段,可以在1MB范围q更改CS段地址和IP偏移地址q目标地址必须用一个32位数表达,叫做32位远指针,它就是逻辑地址代码段代码段代码段代码段 实际编程时,实际编程时,MASM汇编程序会根据目标地址的汇编程序会根据目标地址的距离,自动处理成短转移、近转移或远转移距离,自动处理成短转移、近转移或远转移 程序员可用操作符程序员可用操作符short、near ptr 或或far ptr 强制强制6nJMP指令分成指令分成4种类型:种类型:段内转移、相对寻址段内转移、相对寻址 段内转移、间接寻址段内转移、间接寻址 段间转移、直接寻址段间转移、直接寻址 段间转移、间接寻址段间转移、间接
4、寻址7段内转移、相对寻址段内转移、相对寻址JMP labelJMP label;IPIP+IPIP+位移量位移量n位移量是紧接着位移量是紧接着JMP指令后的那条指令的偏移地指令后的那条指令的偏移地址,到目标指令的偏移地址的地址位移址,到目标指令的偏移地址的地址位移n当向地址增大方向转移时,位移量为正;向地址当向地址增大方向转移时,位移量为正;向地址减小方向转移时,位移量为负减小方向转移时,位移量为负again:again:dec cxdec cx;标号;标号againagain的指令的指令jmp againjmp again;转移到;转移到againagain处继续执行处继续执行jmp out
5、putjmp output;转向;转向outputoutputoutput:output:mov result,almov result,al;标号;标号outputoutput的指令的指令8段内转移、间接寻址段内转移、间接寻址JMP r16/m16 JMP r16/m16;IPr16/m16IPr16/m16n将一个将一个1616位寄存器或主存字单元内容送入位寄存器或主存字单元内容送入IPIP寄存器,作为新的指令指针,但不修改寄存器,作为新的指令指针,但不修改CSCS寄存器的内容寄存器的内容jmp axjmp ax;IPAXIPAXjmp word ptr 2000hjmp word ptr
6、 2000h;IP2000hIP2000h9段间转移、直接寻址段间转移、直接寻址JMP far ptr labelJMP far ptr label;IPlabelIPlabel的偏移地址的偏移地址;CSlabelCSlabel的段地址的段地址n将标号所在段的段地址作为新的CS值,标号在该段内的偏移地址作为新的IP值;这样,程序跳转到新的代码段执行jmp far ptr othersegjmp far ptr otherseg;远转移到代码段2的otherseg10段间转移、间接寻址段间转移、间接寻址JMP far ptr memJMP far ptr mem;IPmemIPmem,CSmem
7、+2CSmem+2n用一个双字存储单元表示要跳转的目标地址。n这个目标地址存放在主存中连续的两个字单元中的,低位字送IP寄存器,高位字送CS寄存器mov word ptr bx,0mov word ptr bx,0mov word ptr bx+2,1500hmov word ptr bx+2,1500hJMP far ptr bxJMP far ptr bx ;转移到1500h:011nJmp转移指令的原理,可参见:q王爽第九章122.4.2 条件转移指令条件转移指令n指定的条件cc如果成立,程序转移到由标号label指定的目标地址去执行指令;条件不成立,则程序将顺序执行下一条指令n操作数l
8、abel是采用相对寻址方式的短转移标号q表示Jcc指令后的那条指令的偏移地址,到目标指令的偏移地址的地址位移q距当前IP地址128127个单元的范围之内Jcc labelJcc label ;条件满足,发生转移:;条件满足,发生转移:IPIPIPIP8 8位位移位位移量量 ;条件不满足,顺序执行;条件不满足,顺序执行13Jcc指令的分类指令的分类nJcc指令不影响标志,但要利用标志。n根据利用的标志位不同,16条指令分成3种情况:1.判断单个标志位状态 2.比较无符号数高低 3.比较有符号数大小 14转移条件转移条件cc:单个标志状态:单个标志状态JZ/JEZF=1Jump if Zero/E
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8086 指令系统