Instrukcje sterujące
JMP

Instrukcja skoku bezwarunkowego

jmp etykieta
 ...
 etykieta: 
może generować różne instrukcje maszynowe w zależności od długości skoku.
Przeważnie krótsze skoki generują krótszy kod maszynowy.

short1 bajt-128 ... +128
near2 bajty-32 768 ... +32 768
domyślny 4 bajty-2 147 483 648 ... +2 147 483 648

CMP

Aby porównać wartości całkowitoliczbowe 80x86 dostarcza funkcji

cmp x, y
Funkcja oblicza x - y i ustawia odpowiednie flagi (wynik odejmowania nie jest dostępny).
x = y : ZF = 1

Dla liczb bez znaku

x < y : ZF = 0, CF = 1  ; odejmowanie z pożyczką
x > y : ZF = 0, CF = 0

Dla liczb ze znakiem

x < y : ZF = 0, OF != SF  
x > y : ZF = 0, OF = SF
Sprawdzenie samej flagi znaku nie wystarcza, bo przy przepełnieniu znak jest zmieniony na przeciwny.

TEST

Aby sprawdzić czy dany rejestr np. EAX jest równy zero można użyć instrukcji

test eax, eax
Jest ona szybsza i krótsza od cmp eax, 0

W ogólności

test x, y
wykonuje bitowe and i ustawia flagę ZF w zależności od tego czy wynik jest zerem.

Proste skoki warunkowe

Wykonanie skoku zależy tylko od jednej z flag procesora

;Skok   jeżeli     w ostatniej operacji 
JZ      ZF = 1    ; był wynik 0
JNZ     ZF = 0
 
JO      OF = 1    ; było przepełnienie   
JNO     OF = 0
 
JS      SF = 1    ; wynik był ujemny 
JNS     SF = 0
 
JC      SF = 1    ; przepełnienie lub niedomiar 
JNC     SF = 0    ; dla liczb bez znaku
 
JP      PF = 1    ; najmłodszy bajt ma parzystą liczbę jedynek 
JNP     PF = 0
 

Skoki warunkowe

Bezpośrednio po wykonaniu

cmp x, y
możemy użyć następujących instrukcji skoku warunkowego
liczby ze znakiem      liczby bez znaku       skok jeżeli
JE,  JZ                JE,  JZ                x = y             
JNE, JNZ               JNE, JNZ               x != y         
JL,  JNGE              JB,  JNAE              x < y           
JLE, JNG               JBE, JNA               x <= y
JG,  JNLE              JA,  JNBE              x > y
JGE, JNL               JAE, JNB               x >= y
Instrukcja loop