现代微机原理及接口技术 第三章(5) 控制转移类指及处理机控制类指.ppt
《现代微机原理及接口技术 第三章(5) 控制转移类指及处理机控制类指.ppt》由会员分享,可在线阅读,更多相关《现代微机原理及接口技术 第三章(5) 控制转移类指及处理机控制类指.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、教学提示在学习和应用汇编语言进行程序设计时,有一些经常遇到的问题,例如算术运算、代码转换等,需要掌握3.2.5 控制转移类指令n控制转移类指令用于实现分支、循环、过程等程序结构,是仅次于传送指令的最常用指令重点掌握:JMP/Jxx/LOOP CALL/RETINT n/IRET 常用系统功能调用一般了解:LOOPZ/LOOPNZ INTO 控控制制转转移移类类指指令令通通过过改改变变IP(和和CS)值值,实现程序执行顺序的改变实现程序执行顺序的改变一 无条件转移指令n只要执行无条件转移指令JMP,就使程序转到指定的目标地址处,从目标地址处开始执行那里的指令n操作数label是要转移到的目标地址
2、(目的地址、转移地址)nJMP指令分成4种类型:段内转移、直接寻址 段内转移、间接寻址 段间转移、直接寻址 段间转移、间接寻址JMP labelJMP label;程序转向;程序转向labellabel标号指定的地址标号指定的地址JMPJMP目标地址的寻址方式n直接寻址方式n转移地址象立即数一样,直接在指令的机器代码中,就是直接寻址方式n间接寻址方式n转移地址在寄存器或主存单元中,就是通过寄存器或存储器的间接寻址方式用标号表达用标号表达用寄存器或存储器用寄存器或存储器操作数表达操作数表达JMPJMP目标地址的范围:段内n段内转移近转移(near)n在当前代码段64KB范围内转移(32KB范围)
3、n不需要更改CS段地址,只要改变IP偏移地址n段内转移短转移(short)n转移范围可以用一个字节表达,在段内128127范围的转移代代码码段段代代码码段段JMPJMP目标地址的范围:段间n段间转移远转移(far)n从当前代码段跳转到另一个代码段,可以在1MB范围n需要更改CS段地址和IP偏移地址n目标地址必须用一个32位数表达,叫做32位远指针,它就是逻辑地址代代码码段段代代码码段段 实实际际编编程程时时,汇汇编编程程序序会会根根据据目目标标地地址址的的距距离离,自动处理成短转移、近转移或远转移自动处理成短转移、近转移或远转移 程序员可用操作符程序员可用操作符short、near ptr 或
4、或far ptr 强制强制JMPJMPJMPJMP段内转移、直接寻址JMP label;IPIP+位移量n位移量是紧接着JMP指令后的那条指令的偏移地址,到目标指令的偏移地址的地址位移n当向地址增大方向转移时,位移量为正;向地址减小方向转移时,位移量为负jmp again;转移到again处继续执行again:dec cx;标号again的指令jmp output;转向outputoutput:mov result,al;标号output的指令实际为相对寻址实际为相对寻址段内转移、间接寻址JMP r16/m16;IPr16/m16n将一个16位寄存器或主存字单元内容送入IP寄存器,作为新的指令
5、指针,但不修改CS寄存器的内容jmp ax;IPAXjmp word ptr 2000h;IP2000hJMPJMP段间转移、直接寻址JMP far ptr label;IPlabel的偏移地址;CSlabel的段地址n将标号所在段的段地址作为新的CS值,标号在该段内的偏移地址作为新的IP值;这样,程序跳转到新的代码段执行jmp far ptr otherseg;远转移到代码段2的othersegJMPJMP段间转移、间接寻址JMP far ptr mem;IPmem,CSmem+2n用一个双字存储单元表示要跳转的目标地址。这个目标地址存放在主存中连续的两个字单元中的,低位字送IP寄存器,高位
6、字送CS寄存器mov word ptr bx,0mov word ptr bx+2,1500hJMP far ptr bx ;转移到1500h:0JMPJMP二 条件转移指令n指定的条件xx如果成立,程序转移到由标号label指定的目标地址去执行指令;条件不成立,则程序将顺序执行下一条指令n操作数label是采用短转移,称为相对寻址方式JxxJxxJxxJxx label label ;条件满足,发生转移:;条件满足,发生转移:IPIPIPIP8 8位位移量位位移量 ;条件不满足,顺序执行;条件不满足,顺序执行相对寻址方式nJxx指令的操作数label是一个标号n一个8位位移量,表示Jcc指令
7、后的那条指令的偏移地址,到目标指令的偏移地址的地址位移n8位位移量是相对于当前IP的,且距当前IP地址128127个单元的范围之内,属于段内短距离转移nJcc目标地址就采用这种相对寻址方式nJxx指令为2个字节,条件不满足时的顺序执行就是当前指令偏移指针IP加2JxxJxxJxx指令的分类nJxx指令不影响标志,但要利用标志(表)。根据利用的标志位不同,17条指令分成4种情况:判断单个标志位状态 比较无符号数高低 比较有符号数大小 判断计数器CX为0JxxJxx判断单个标志位状态n这组指令单独判断5个状态标志之一JZ/JE和JNZ/JNE:利用零标志ZF,判断结果是否为零(或相等)JS和JNS
8、:利用符号标志SF,判断结果是正是负JO和JNO:利用溢出标志OF,判断结果是否产生溢出JP/JPE和JNP/JPO:利用奇偶标志PF,判断结果中“1”的个数是偶是奇JC/JB/JNAE和JNC/JNB/JAE:利用进位标志CF,判断结果是否进位或借位JxxJxx例题例题1例题例题2例题例题3例题例题4例题例题5比较无符号数高低n无符号数的大小用高(Above)低(Below)表示n利用CF确定高低、利用ZF标志确定相等(Equal)n两数的高低分成4种关系:低于(不高于等于):JB(JNAE)不低于(高于等于):JNB(JAE)低于等于(不高于):JBE(JNA)不低于等于(高于):JNBE
9、(JA)JxxJxx例例6:比较无符号数:比较无符号数cmp ax,bx;比较ax和bxjnb next;若axbx,转移xchg ax,bx;若axbx,交换next:.结果:结果:AX保存较大的保存较大的无符号数无符号数比较有符号数大小n有符号数的大(Greater)小(Less)需要组合OF、SF标志,并利用ZF标志确定相等(Equal)n两数的大小分成4种关系:小于(不大于等于):JL(JNGE)不小于(大于等于):JNL(JGE)小于等于(不大于):JLE(JNG)不小于等于(大于):JNLE(JG)JxxJxx例例7:比较有符号数:比较有符号数cmp ax,bx;比较ax和bxjn
10、l next;若axbx,转移xchg ax,bx;若axbx,交换next:.结果:结果:AX保存较大的保存较大的有符号数有符号数计数器CX为0转移n这是一条较特殊的指令nCX寄存器通常在程序中用做计数器nJCXZ指令用来判断计数是否为0JCXZ labelJCXZ label ;CXCX0 0,发生转移:,发生转移:IPIPIPIP8 8位位移量位位移量 ;CX0CX0,顺序执行,顺序执行判断计数器为0mov cx,100again:movsb;传送一个字节dec cx;传送次数减1jnz again;判断传送次数cx是否为0;不为0(ZF=0),则转移;否则,结束mov cx,100ag
11、ain:jcxz next;判断传送次数cx是否为0movsbdec cxjmp againnext:.cmp cx,0jz next三 循环指令(loop)n循环指令利用CX计数器自动减1,方便实现计数循环的程序结构nlabel操作数采用相对寻址方式LOOP labelLOOP label;CXCXCXCX1 1,;CX0CX0,循环到标号,循环到标号labellabelLOOPZ labelLOOPZ label;CXCXCXCX1 1,;CX0CX0且且ZFZF1 1,循环到标号,循环到标号labellabelLOOPZ labelLOOPZ label;CXCXCXCX1 1,;CX0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代微机原理及接口技术 第三章5 控制转移类指及处理机控制类指 现代 微机 原理 接口 技术 第三 控制 转移 处理机
限制150内