条件转移指令
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
向前跳转 JMP ... NEXT: ... 向后跳转 NEXT: ... ... JMP NEXT ;IP减 NEXT ;IP加
例:求下面两条转移指令的转移地址A10和A20分 别是多少? (1) CS:0110 EB F7 JMP A10 CS: (2) CS: CS:0110 EB 09 JMP A20 下一条指令的IP=0110+2=0112 (1) A10的地址= 0112 + -9 0109H (F7) + (2) A10的地址= 0112 9 011BH
区别: (1)无条件转移是无条件的,不作任何判断就转向 目的单元. (2)有条件转移只能在-128~+127个字节范围 内转移,而无条件转移则无此限制.
例1:完成如下判断 1 X≥0 Y= 0 X<0 … MOV AL,X CMP AL,0 JGE BIG MOV AL,0 JMP FIN BIG:MOV AL,1 FIN:MOV Y,AL …
(3)有符号数条件转移指令 指令 描述 标志测试 SF=OF且ZF=0 SF=OF或ZF=1
JG/JNLE 大于(或不小于且不等于)转移 (用于比较两个有符号数a,b,a>b时转移) JGE/JNL 大于等于(或不小于)转移
(用于比较两个有符号数a,b, a≥b时转移) JL/JNGE 小于(或不大于且不等于)转移 SF≠OF且ZF=0 (用于比较两个有符号数a,b, a<b时转移) JLE/JNG 小于等于(或不大于)转移 SF≠OF且ZF=0 (用于比较两个有符号数a,b, a≤b时转移)
(3)段内间接转移指令 格式:JMP WORD PTR ;16位的地址表达式 执行的操作:(IP)←(EA) ;其中EA由OPR的寻址方式确定,可以是除立即数以 外的任一寻址方式
(4)段间直接转移指令 格式:JMP FAR OPR ;OPR为标号名 执行的操作:(IP)为OPR的段内偏移地址 (CS)为OPR所在段的段地址 (5)段间间转移指令 格式:JMP DWORD PTR OPR ;OPR为标号名 执行的操作:(IP)←EA (CS)←(EA+2) ;EA由OPR的寻址方式确定,可以是除立即数及寄存 器以外的任一存储器寻址方式
四、程序转换指令
1.无条件转移指令 地址开始的指令。 段内转移指令:只改变指针IP的内容. 段间转移指令:改变CS和IP的内容. JMP 无条件地转移到指令指定的地址去执行从该
(1)段内直接近转移指令 格式:JMP NEAR PTR OPR 或 JMP OPR (2)段内直接短转移指令 格式:JMP SHORT OPR ;OPR为标号名 执行的操作:(IP)←下一条指令(IP)+8位位移量 ;OPR为标号名 执行的操作:(IP)←下一条指令(IP)+16位位移量
2.有条件转移指令 格式: [标号:] 操作符 短标号 功能:IP+符号扩展到16位的8位位移量→IP 说明:从下一条指令算起的-128~+127之间
(1)简单条件转移指令(P57) 指令 JE(或JZ) JS JNS JO JNO 描述 结果为相等(或为0)则转移 结果为负则转移 结果为正则转移 溢出则转移 无溢出则转移 标志测试 ZF=1 SF=1 SF=0 OF=1 OF=0
例2. 实现下列多值函数。 1 Y= 0 -1 (x>0) (x=0) (x<0)
MOV CMP JG CMP JE MOV JMP L1:MOV JMP EXIT:
AL,X AL,0 L1 AL,0 L2 Y,-1 EXIT Y,1 EXIT
;X>0? ;X=0? ;X<0,Y=-1
L2:MOV Y,0
JNE(或JNZ) 结果不为相等(不为0)则转移 ZF=0
指令 JC JNC JP (或JPE)
Baidu Nhomakorabea
描述 有进(借)位则转移 无进(借)位则转移 偶数个1则转移
标志测试 CF=1 CF=0 PF=1
JNP(或JPO) 奇数个1则转移 JCXZ CX=0则转移
PF=0 无
(2)无符号数条件转移指令 指令 描述 标志测试 CF=0且ZF=0 CF=0或ZF=1 CF=1且ZF=0 CF=1或ZF=1 JA/JNBE 高于(或不低于且不等于)转移 (用于比较两个无符号数a,b,a>b时转移) JAE/JNB 高于等于(或不低于)转移 (用于比较两个无符号数a,b, a≥b时转移) JB/JNAE 低于(或不高于且不等于)转移 (用于比较两个无符号数a,b, a<b时转移) JBE/JNA 低于等于(或不高于)转移 (用于比较两个无符号数a,b, a≤b时转移)