跳转指令

跳转指令有:JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP等等

JMP:无条件跳转,相当于C语言的goto

JCC:根据指定的条件确定程序是否发生转移,条件满足,发生转移,否则,顺序执行下条指令

JECXZ:ECX为0则跳转

用有16条指令,分两类:

①单个标志状态作为条件

  5个状态标志ZF、CF、SF、OFPF的10种状态

②两数大小关系作为条件

  ㈠比较无符号整数的大小:

      低于、不低于、低于等于、高于

  ㈡比较有符号整数大小:

      小于、不小于、小于等于、大于

 

标志状态作为条件:

②利用零位标志ZF的条件转移指令:

JZ:运算结果为0 (ZF=1)

JNZ:结果不为0 (ZF=0)

JE:两数相等 (ZF=1)

JNE:不相等 (ZF=0)

 

②利用进位标志CF的条件转移指令:

JC:运算结果有进位/借位(CF=1)

JNC:运算结果没有有进位/借位(CF=0)

 

③利用溢出标志OF的条件转移指令:

JO:运算结果有溢出(OF=1)

JNO:结果没有溢出(OF=0)

 

④利用符号标志SF的条件转移指令:

JS:运算结果是负、最高位为1(SF=1)

JNS:结果是正、最高位为0(SF=0)

 

⑤利用奇偶标志PF的条件转移指令:

JP:低8位结果中1的个数为偶或0(PF=1)

JPE:低8位结果中1的个数为偶或0(PF=1)

JNP:低8位结果中1的个数为奇(PF=0)

JPO:低8位结果中1的个数为奇(PF=0)

 

⑴两个无符号整数大小关系的条件转移指令:

无符号数大小用高(Above)、低(Below)助记符

JB:无符号低于

JNAE:无符号不高于等于

 

 

JNB:无符号不低于

JAE:无符号高于等于

 

 

JBE:无符号低于等于

JNA:无符号不高于

 

JNBE:无符号不低于等于

JA:无符号高于

即 JB = JNAE、 JNB = JAE、JBE = JNA 和 JNBE = JA

 

⑵两个有符号整数大小关系的条件转移指令:

有符号数大小用大(Greater)、小(Less)助记符

JL:小于

JNGE:不大于等于

 

JNL:不小于

JGE:大于等于

 

JLE:小于等于

JNG:不大于

 

JNLE:不小于等于

JG:大于

即JL = JNGE、JNL = JGE、JLE = JNG 和 JNLE = JG

posted @ 2017-11-26 20:11  starry_sky  阅读(11225)  评论(0编辑  收藏  举报