JCC指令

JCC指令在满足条件时会修改EIP寄存器的值

JCC指令 说明 对应标志 对应C语言
JE, JZ 结果为零则跳转(相等时跳转) ZF=1 if (i == j);if (i == 0)
JNE, JNZ 结果不为零则跳转(不相等时跳转) ZF=0 if (i != j);if (i != 0)
JS 结果为负则跳转 SF=1 if (i < 0)
JNS 结果为非负则跳转 SF=0 if (i > 0)
JP, JPE 结果中1的个数为偶数则跳转 PF=1 (null)
JNP, JPO 结果中1的个数为偶数则跳转 PF=0 (null)
JO 结果溢出了则跳转 OF=1 (null)
JNO 结果没有溢出则跳转 OF=0 (null)
JB, JNAE 小于则跳转 (无符号数) CF=1 if (i < j)
JNB, JAE 大于等于则跳转 (无符号数) CF=0 if (i >= j)
JBE, JNA 小于等于则跳转 (无符号数) CF=1 or ZF=1 if (i <= j)
JNBE, JA 大于则跳转(无符号数) CF=0 and ZF=0 if (i > j)
JL, JNGE 小于则跳转 (有符号数) SF≠ OF if (si < sj)
JNL, JGE 大于等于则跳转 (有符号数) SF=OF if (si >= sj)
JLE, JNG 小于等于则跳转 (有符号数) ZF=1 or SF≠ OF if (si <= sj)
JNLE, JG 大于则跳转(有符号数) ZF=0 and SF=OF if(si>sj)
指令 英文 中文
je Equal 等于
jne Not Equal 不等于
jg Creater 大于
jge Creater or Equal 大于等于
jng Not Greater 不大于
jnge Not Greater or Equal 不大于等于
jl Less 小于
jle Less or Equal 小于等于
jnl Not Less 不小于
jnle Not Less or Equal 不小于等于
ja Above 高于
jae Above or Equal 高于等于
jna Not Above 不高于
jnae Not Above or Equal 不高于等于
jb Below 低于
jbe Below or Equal 低于等于
jnb Not Below 不低于
jnbe Not Below or Equal 不低于等于
jpe Parity Even 校验为偶
jpo Parity Odd 检验为奇

FLAG寄存器

位 名称 含义 说明
0 CF Carry Flag 若算术操作产生的结果在最高有效位(most-significant bit)发生进位或错位则置为1,否则置0。通常用来指示无符号整型运算的溢出状态
1 1 未使用
2 PF Parity Flag 奇偶校验位,如果结果的最低有效字节(least-significant byte)包含偶数个1则置为1,否则置0
3 0 未使用
4 AF Auxiliary Carry Flag 辅助进位标志,如果算术操作在结果的第3位发生进位或错位,则置为1,否则置0,这个标志在BCD(binary-code decimal)算术运算中被使用
5 0 未使用
6 ZF Zero Flag 如果运算结果为0,则置为1,否则置0。通常与CMP和TEST指令一起使用
7 SF Sign Flag 符号标志位,该标志被置为有符号整型的最高有效位
8 TF Trap Flag 陷阱标志位,当为1时CPU进入单步执行模式,调试器中的单步步入就是使用这个表示位,单步步过使用CC下断点
9 IF Interrupt Enable Flag
10 DF Direction Flag 用来控制变址寄存器的方向,当为0时,执行MOVS或STOS指令后EDI和ESI自增,反之则自减,数值取决于写入的长度,STD置为1,CLD置0
11 OF Overflow Flag 反映有符号数加减运算结果是否有溢出,无符号数看CF位,例如0X7F+2,CF位不会溢出,而看OF则溢出
12 IOPL I/O Privilege Level
13 IOPL I/O Privilege Level
14 NT Nested Task
15 0 未使用
16 RF Resume Flag
17 VM Virtual-8086 Mode
18 AC Alignmen Check / Access Contorl
19 VIF Virtual Interrupt Flag
20 VIP Virtual Interrupt Pending
21 ID ID Flag
22 0 未使用
23 0 未使用
24 0 未使用
25 0 未使用
26 0 未使用
27 0 未使用
28 0 未使用
29 0 未使用
30 0 未使用
31 0 未使用