X86的寻址方式和指令系统.ppt
《X86的寻址方式和指令系统.ppt》由会员分享,可在线阅读,更多相关《X86的寻址方式和指令系统.ppt(47页珍藏版)》请在三一办公上搜索。
1、五控制转移指令(Control transfer instructions)(一)、控制转移指令概述 控制转移指令包括四种:转移指令,循环控制指令,过程调用指令,中断指令。1、转移指令 转移指令包括两种:(1)JMP(Jump)无条件转移指令(2)Jcc 条件转移指令,(1)JMP(Jump)无条件转移指令 转移分成两类:段内或段间转移。无条件转移指令有五种格式:段内直接短转移段内直接近转移段内间接转移段间直接远转移段间间接转移JMP指令的操作:无条件地将控制转移到指令中规定的目的地。目标地址可以是:直接方式/间接方式给出。JMP指令不影响标志位。,(2)、Jcc 条件转移指令汇编程序设计中常
2、利用条件转移指令来实现分支。“cc”表示条件。操作数必须是短标号。转移范围为:128127根据转移条件可分为四种情况讨论:根据单个条件标志的设置情况转移 JZ(JE)/JNZ(JNE),JS/JNS,JO/JNO,JP(JPE)/JNP(JPO),JB(JNAE、JC)/JNB(JAE、JNC),根据两个无符号数比较结果转移 JB(JNAE、JC)/JNB(JAE、JNC),JBE(JNA)/JNBE(JA)比较两个带符号数,并根据比较结果转移 JL(JNGE)/JNL(JGE),JLE(JNG)/JNLE(JG)测试CX的值为零转移 JCXZ,段内直接短转移,(二)控制转移指令(Contro
3、l transfer instructions)1、转移指令转移指令将程序控制从一处转换到另一处的最直接方法。在CPU内部,转移是通过将目标地址传送给IP来实现的。注意:CS段地址 转移地址 IP偏移量调用地址寻址,控制和非控制转移指令 非控制转移指令:指令本身对CS和IP均无操作,形成顺序执行 结构。顺序执行结构:顺序存放,顺序执行 控制转移指令:以CS和IP为主要操作对象,改变CS和IP寄存 器的值,就改变了程序执行的流程。程序是指令的集合指令在内存中顺序存放,在8086/8088中,指令的地址固定由CS和IP两个寄存器决定。CS和IP两寄存器的内容决定了程序的流程,改变CS和IP寄存器的
4、值,就改变了程序执行的流程。8086/8088 中CS和IP的变化:reset复位后,(CS)=FFFFH,(IP)=0 故8088从内存FFFF:0000H处取第一条指令执行,第一条指令在内存的ROM区。非控制转移指令 CPU取来一条指令后,自动将IP的值加上该指令的字节数,使IP顺序指向下一条指令,CPU取来紧接着的指令执行。(此时IP的变化由CPU内部的硬件自动完成),发生了转移,控制转移指令以CS和IP为主要操作对象 控制转移指令改变CS和IP的值,使程序产生分支、调用结构。顺序存放,非顺序执行例:比较(AX)、(BX)的大小,将大数存于(max)单元。CMP AX,BX JGE gr
5、eat XCHG AX,BX great:MOV max,AX,AX、BX中是有符号/无符号数?,(1)JMP(Jump)无条件转移指令JMP(jmp)跳转指令。JMP指令必须指定转移的目标地址(或转向地址)。转移分成两类:段内或段间转移。段内转移:只要改变IP寄存器的内容 指在同一段的范围之内进行转移 即用新的转移目标地址代替原有的IP值。段间转移:要修改IP、CS寄存器的内容 转到另一段去执行程序。即转移目标地址=新的段地址和偏移地址两部分组成。,(2)Jcc 条件转移指令 根据单个条件标志的设置情况转移(10种)JZ(JE)/JNZ(JNE),JP(JPE)/JNP(JPO),JS/JN
6、S,JO/JNO,JB(JNAE、JC)/JNB(JAE、JNC),根据两个无符号数比较结果转移(4种)JB(JNAE、JC)/JNB(JAE、JNC),JBE(JNA)/JNBE(JA)比较两个带符号数,并根据比较结果转移(4种)JL(JNGE)/JNL(JGE),JLE(JNG)/JNLE(JG)测试CX的值为零转移 JCXZ,指令格式:J cc OPR操作:根据上一条指令所设置的条件码来判别测试条件转移。每一种条件转移指令都有它的测试条件。满足条件时:(IP)(IP)当前+符号扩展到16位后的位移量D8,使用相对寻址方式,范围-128+127个字节不满足条件时:(IP)不变,顺序执行下一
7、条指令,注意:所有条件转移指令都是相对转移形式,范围(-128+127)。当需往一个较远地方进行条件转移时,选用条件转移转到附近一个单元,然后,再用无条件转移转到较远的目的地。条件转移指令中,相当一部分指令是在比较完二个数大小后,根据结果而决定是否转移 条件转移指令不影响标志位,按转移条件不同,条件转移指令可以分为四大类:以单个状态标志作为转移条件助记符转移条件,以CX的值为0作为转移条件,以两个无符号数比较的结果作为转移条件,以两个带符号数比较的结果作为转移条件,(1)根据Z标志,可判断两者是否相等例:CMP AX,BXZF=1,(AX)=(BX),两者相等ZF=0,(AX)=(BX),两者
8、不相等(2)根据CF标志,判断两个无符号数的大小例:比较AX,BX寄存器,将大数(AX)CMP AX,BX JNC NEXT;CF=0转NEXT XCHG AX,BX NEXT:结论:CF=0,(AX)(BX);CF=1,(AX)(BX),(3)用SF、OF标志,判断二个带符号数的大小 设:被比较二个带符号数分别为:A、B 分四种情况讨论:A0,B0 A0,B0,分析以上四种情况得出如下结论:(1)OF=0 时:SF=0,则:AB SF=1,则:AB SF=0,则:AB,用JG/JNLE转移指令;SO=1时,AB,用JL/JNGE转移指令。,条件转移指令应用 例:比较二个数是否相等 如相等做动
9、作1 否则做动作2CMP AX,BXJE action_1action_2:action_1:,或 CMP AX,BX JNZ action_2action_1:action_2:,2、过程(子程序)调用指令子程序程序中具有独立功能的部分编写成独立程序模块。子程序(过程)定义格式:过程名 PROC 类型 过程名 ENDP 过程有两种类型:按过程与调用语句间的位置,过程有两种类型。NEAR类型:调用指令与过程在同一个段中FAR类型:调用指令与过程不在同一个段中子程序调用和返回指令:CALL RET(RETURN)CALL指令和RET指令都不影响条件码。,(1)CALL(Call a proced
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- X86 寻址 方式 指令系统

链接地址:https://www.31ppt.com/p-5576522.html