下面的指令,根据标志位状态的不同,都可能会影响到CS和IP寄存器的值,也就是实现CPU跳转。
一、所有数字类型
指令名称 |
中文解释 |
针对数字类型 |
相关标志位 |
JE OR JZ |
结果为零则跳转[相等时跳转] |
ALL |
ZF=1 |
JNE OR JNZ |
结果不为零则跳转[不相等时跳转] |
ALL |
ZF=0 |
JP OR JPE |
结果低8位中1的个数为偶数则跳转 |
ALL |
PF=1 |
JNP OR JPO |
结果低8位中1的个数为奇数则跳转 |
ALL |
PF=0 |
JCXZ |
cx=0 则跳转 |
ALL |
无关标志位 |
二、无符号数字类型
指令名称 |
中文解释 |
针对数字类型 |
相关标志位 |
JB OR JNAE |
小于则跳转 |
无符号数 |
CF=1 |
JNB OR JAE |
大于等于则跳转 |
无符号数 |
CF=0 |
JBE OR JNA |
小于等于则跳转 |
无符号数 |
CF=1 OR ZF=1 |
JNBE OR JA |
大于则跳转 |
无符号数 |
CF=0 AND ZF=0 |
三、有符号数字类型
指令名称 |
中文解释 |
针对数字类型 |
相关标志位 |
JS |
结果为负则跳转 |
有符号数 |
SF=1 |
JNS |
结果为非负则跳转 |
有符号数 |
SF=0 |
JO |
结果溢出了则跳转 |
有符号数 |
OF=1 |
JNO |
结果没有溢出则跳转 |
有符号数 |
OF=0 |
JL OR JNGE |
小于则跳转 |
有符号数 |
SF≠ OF |
JNL OR JGE |
大于等于则跳转 |
有符号数 |
SF=OF |
JLE OR JNG |
小于等于则跳转 |
有符号数 |
ZF=1 OR SF≠ OF |
JNLE OR JG |
大于则跳转 |
有符号数 |
ZF=0 AND SF=OF |