条件转移指令较多,容易混淆,在此记录一下便于日后使用
1.根据单个条件标志的设置情况转移
指令
英文
含义
格式
测试条件
JZ/JE
jumpifzero/equal
结果为零/相等则转移
JZ/JEOPR
ZF=1
JNZ/JNE
jumpifnotzero/equal
结果不为零/不相等则转移
JNZ/JNEOPR
ZF=0
JS
jumpifsign
结果为负则转移
JSOPR
SF=1
JNS
jumpifnotsign
结果为正则转移
JNSOPR
SF=0
JO
jumpifoverflow
溢出则转移
JOOPR
OF=1
JNO
jumpifnotoverflow
不溢出则转移
JNOOPR
OF=0
JP/JPE
jumpifparity/parityeven
奇偶位为1则转移
JP/JPEOPR
PF=1
JNP/JNPE
jumpifnotparity/parityeven
奇偶位为0则转移
JNP/JNPEOPR
PF=0
JB/JNAE/JC
jumpifbelow/notabove、notequal/carry
低于/不高于或不等于/进位为1则转移
JB/JNAE/JCOPR
CF=1
JNB/JAE/JNC
jumpifnotbelow/above、equal/notcarry
不低于/高于或等于/进位为零则转移
JNB/JAE/JNCOPR
CF=0
适用于测试某
一次运算的结果并根据其
不同特征产生程序分支
不同的处理的
情况
2.比较两个无符号数,并根据比较的结果转移
指令
英文
含义
格式
测试条件
等价于
JB/JNAE/JC
jumpifbelow/notabove、notequal/carry
低于/不高于或不等于/进位为1则转移
JB/JNAE/JCOPR
CF=1
<
JNB/JAE/JNC
jumpifnotbelow/above、equal/notcarry
不低于/高于或等于/进位为零则转移
JNB/JAE/JNCOPR
CF=0
≥
JBE/JNA
jumpifbelow/equal、notabove
低于/等于、不高于则转移
JBE/JNAOPR
CF并ZF=1
≤
JNBE/JA
jumpifnotbelow/notequal、above
不低于/不等于、高于则转移
JNBE/JAOPR
CF并ZF=0
>
3.比较两个带符号数,并根据比较的结果转移
指令
英文
含义
格式
测试条件
等价于
JL/JNGE
jumpifless、notgreater/equal
小于、不大于/不等于则转移
JL/JNGEOPR
SF异或CF=1
<
JNL/JGE
jumpifnotless、greater/equal
不小于、大于/等于则转移
JNL/JGEOPR
SF异或CF=0
≥
JLE/JNG
jumpifless/equal、notgreater
小于/等于、不大于则转移
JLE/JNGOPR
(SF异或CF)并ZF=1
≤
JNLE/JG
jumpifnotless/notequal、greater
不小于/不等于、大于则转移
JNLE/JGOPR
(SF异或CF)并ZF=0
>
4.测试CX或ECX的值为0则转移指令
1.LCXZ(jumpifCXregisteriszero)CX寄存器的内容为零则转移
格式:JCXZOPR
测试条件:(CX)=0
2.LECXZ(jumpifECXregisteriszero)ECX寄存器的内容为零则转移
格式:JECXZOPR(386及其后继机型可用)
测试条件:(ECX)=0
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。