跳转指令
跳转指令有:JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP等等
JMP:无条件跳转,相当于C语言的goto
JCC:根据指定的条件确定程序是否发生转移,条件满足,发生转移,否则,顺序执行下条指令
JECXZ:ECX为0则跳转
用有16条指令,分两类:
①单个标志状态作为条件
5个状态标志ZF、CF、SF、OF和PF的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