跳至主要内容

23.JCC

标志寄存器:EFLAGS

CF[0]

  • 若算数操作产生的结果在最高有效位发成进位或者错位则将其置1,反之清零
  • 这个标志通常用来只是无符号整形运算的溢出状态

PF[2]

  • 如果结果的最低有效字节包含偶数个1位则该位置1,否则清零
  • 常用于数据核对

AF[4]

  • 如果算数操作在结果的第3位发生进位或借位则将该位置1,否则清零
  • 常用于BCD算数运算中被使用

ZF位[6]

  • 运算结果为0则置1,反之清零

SF位[7]

  • 该标志被设置为有符号整型的最高有效位

OF[11]

  • 溢出标志OF用于反映有符号数加减运算所得结果是否溢出

DF[10]

  • 这个方向标志控制串指令(MOVS,CMPS,SCAS,LODS以及STOS)。设置DF标志使得串指令自动递减(从高地址向低地址方向处理字符串),清除该标志则使得串指令自动递增
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
指令       标志位条件              英文全称                              含义
─────────────────────────────────────────────────────────────────────────────────────────────
JE /JZ ZF = 1 Jump if Equal / Zero 相等(结果为零)则跳转
JNE /JNZ ZF = 0 Jump if Not Equal / Not Zero 不相等(结果不为零)则跳转
─────────────────────────────────────────────────────────────────────────────────────────────
JA /JNBE CF = 0 且 ZF = 0 Jump if Above / Not Below or Equal 无符号大于则跳转
JAE /JNB CF = 0 Jump if Above or Equal / Not Below 无符号大于等于则跳转
JB /JNAE CF = 1 Jump if Below / Not Above or Equal 无符号小于则跳转
JBE /JNA CF = 1 或 ZF = 1 Jump if Below or Equal / Not Above 无符号小于等于则跳转
─────────────────────────────────────────────────────────────────────────────────────────────
JG /JNLE ZF = 0 且 SF = OF Jump if Greater / Not Less or Equal 有符号大于则跳转
JGE /JNL SF = OF Jump if Greater or Equal / Not Less 有符号大于等于则跳转
JL /JNGE SF ≠ OF Jump if Less / Not Greater or Equal 有符号小于则跳转
JLE /JNG ZF = 1 或 SF ≠ OF Jump if Less or Equal / Not Greater 有符号小于等于则跳转
─────────────────────────────────────────────────────────────────────────────────────────────
JC CF = 1 Jump if Carry 有进位/借位则跳转
JNC CF = 0 Jump if Not Carry 无进位/借位则跳转
─────────────────────────────────────────────────────────────────────────────────────────────
JO OF = 1 Jump if Overflow 有溢出则跳转
JNO OF = 0 Jump if Not Overflow 无溢出则跳转
─────────────────────────────────────────────────────────────────────────────────────────────
JS SF = 1 Jump if Sign 结果为负则跳转
JNS SF = 0 Jump if Not Sign 结果非负则跳转
─────────────────────────────────────────────────────────────────────────────────────────────
JP /JPE PF = 1 Jump if Parity / Parity Even 低字节 1 的个数为偶数则跳转
JNP /JPO PF = 0 Jump if Not Parity / Parity Odd 低字节 1 的个数为奇数则跳转
─────────────────────────────────────────────────────────────────────────────────────────────
JCXZ CX = 0 Jump if CX is Zero CX 寄存器为零则跳转
JECXZ ECX = 0 Jump if ECX is Zero ECX 寄存器为零则跳转
JRCXZ RCX = 0 Jump if RCX is Zero RCX 寄存器为零则跳转(64位)

关于本文

由 GuQing 撰写,采用 CC BY-NC 4.0 许可协议。