Conditional Jumps

Flags Test

Instr. Saut Si Jump If… Unsigned Signed
Equivalence Evaluation Equivalence Evaluation
JS SF=1 sign
JNS SF=0 not sign
JO OF=1 Overflow
JNO OF=0 Not Overflow
JZ ZF=1 Zero JE A=B JE A=B
JE ZF=1 Equal JZ JZ
JNZ ZF=0 Not Zero JNE A<>B JNE A<>B
JNE ZF=0 Not Equal JNZ JNZ
JC CF=1 Carry JNAE, JB A<B
JNAE CF=1 Not Above or Equal JC, JB
JB CF=1 Below JC, JNAE
JNC CF=0 Not Carry JAE, JNB A>=B
JNB CF=0 Not Below JAE, JNC
JAE CF=0 Above or Equal JNC, JNB
JA (CF=0 & ZF=0) Above JNBE A>B
JNBE (CF=0 & ZF=0) Not Below or Equal JA
JBE (CF=1 & ZF=1)
ou
(CF<>ZF)
Below or Equal JNA A⇐B
JNA Not Above JBE
JG (ZF=0 & OF=SF) Greater JNLE A>B
JNLE Not Less of Equal JG
JGE (SF-OF) Greater or Equal JNL A>=B
JNL Not Less JGE
JNG (ZF=0 & SF=OF)
ou
(ZF=1 & SF=OF)
ou
(ZF=0 & SF<>OF)
Not Greater JL A⇐B
JLE Less or Equal JNG
JNGE (SF<>OF) Not Greater or Equal JL A<B
JL Less JNGE

Légende

Jump ? Clocks Size
Operands 808x 286 386 486 Bytes
Jx Y 16 7+m 7+m 3 2
N 4 3 3 1
Jx near-label Y - - 7+m 3 4
N - - 3 1
  • C'est une bonne pratique de programmation d'organiser le code pour executer celui-ci en limitant les jump; un jump prends toujours plus de temps qu'un test qui échoue