跳转指令

 

 

 


<1>
无符号跳转指令(A 和 B)     跳转条件

JA 大于则跳转(leftOp > rightOp)   
JNBE 不小于或相等则跳转(同JA指令)   ZF=0且CF=0


JAE 大于或等于则跳转(leftOp >= rightOp)  
JNB 不小于则跳转(同JEA指令)    CF=0


JB 小于则跳转(leftOp < rightOp)   
JNAE 不大于或者等于则跳转(同JB指令)   CF=1

 

JBE 小于或等于则跳转(leftOp <= rightOp)  
JNA 不大于则跳转(同JBE指令)    CF=1或ZF=1     


<2>
有符号跳转指令(G 和 L)     跳转条件

JG 大于则跳转(leftOp > rightOp)     
JNLE 不小于或相等则跳转(同JG指令)   ZF=0且SF=OF 


JGE 大于或等于则跳转(leftOp >= rightOp)
JNL 不小于则跳转(同JGE指令)    SF=OF


JL 小于则跳转(leftOp < rightOp)
JNGE 不大于或者等于则跳转(同JL指令)   SF!=OF


JLE 小于或等于则跳转(leftOp <= rightOp)  
JNG 不大于则跳转(同JLE指令)    ZF=1或SF!=OF


<3>
根据特定的CPU标志值
JZ 为零则跳转   ZF=1
JNZ 不为零则跳转   ZF=0
JC 如果设置进位标志则跳转  CF=1
JNC 如果未设置进位标志则跳转 CF=0
JO 如果设置溢出标志则跳转  OF=1
JNO 如果未设置溢出标志则跳转 OF=0
JS 如果设置符号标志则跳转  SF=1
JNS 如果未设置符号标志则跳转 SF=0
JP 如果设置了奇偶标志则跳转(偶) PF=1
JNP 如果未设置了奇偶标志则跳转(奇) PF=0


<4>
 根据操作数之间是否相等,或根据(E)CX的值:
下表列出了基于两个操作数是否相等或CX,ECX值是否为零的跳转指令。
CMP  leftOp,rightOp

JZ 相等则跳转
JNZ 不相等则跳转
JCXZ CX=0则跳转
JECXZ ECX=0则跳转

JE ZF=1跳转
JNE ZF=0跳转

 

你可能感兴趣的:(跳转指令)