Znaczniki używane w instrukcjach arytmetycznych i warunkowych

Znacznik Nazwa Ustawiany na 1 gdy ..., a zerowany w przeciwnym przypadku.
CFCarry Flag wystąpiło przeniesienie lub pożyczka z najbardziej znaczącego bitu wyniku (nadmiar w operacjach na liczbach bez znaku)
PFParity Flag najmłodsze 8 bitów wyniku zawiera parzystą liczbę jedynek
AFAsjust Flag wystąpiło przeniesienie lub pożyczka z najmłodszych 4 bitów rejestru AL (używany w arytmetyce dziesiętnej)
ZFZero Flag wynik jest równy zero
SFSign Flag najbardziej znaczący bit wyniku (bit znaku dla liczb w kodzie uzupełnień do 2) jest równy 1
OFOverflow Flag wynik jest zbyt duży lub zbyt mały, aby mógł być zapisany w kodzie uzupełnień do 2 (nadmiar w operacjach na liczbach ze znakiem)
 

Ważniejsze instrukcje modyfikujące znaczniki

Instrukcja OF SF ZF AF PF CF
AAA
AAS
- - - TM - M
AAD
AAM
- M M - M -
DAA
DAS
- M M TM M TM
ADC
SBB
M M M M M TM
ADD
SUB
CMP
CMPS
SCAS
NEG
M M M M M M
DEC
INC
M M M M M
MUL
IMUL
M - - - - M
DIV
IDIV
- - - - - -
RCL 1
RCR 1
M TM
RCL count
RCR count
- TM
ROL 1
ROR 1
M M
ROL count
ROR count
- M
SAL 1
SAR 1
SHL 1
SHR 1
M M M - M M
SAL count
SAR count
SHL count
SHR count
- M M - M M
SHLD
SHRD
- M M - M M
BSF
BSR
- - M - - -
BT
BTS
BTR
BTC
- - - - - M
AND
OR
TEST
XOR
0 M M - M 0
NOT
CLC 0
CMC M
STC 1

T instrukcja testuje znacznik
M instrukcja modyfikuje znacznik
0 instrukcja zeruje znacznik
1 instrukcja ustawia znacznik na 1
- po wykonaniu instrukcji wartość znacznika jest niezdefiniowana
instrukcja nie zmienia wartości znacznika
 

Skoki warunkowe

Instrukcja Sprawdzany warunek Skok gdy ...
JO OF = 1 wystąpił nadmiar
JNO OF = 0 nie wystąpił nadmiar
JB
JNAE
JC
CF = 1 mniejsze (liczby bez znaku)
nie mniejsze i nie równe (liczby bez znaku)
wystąpiło przeniesienie
JNB
JAE
JNC
CF = 0 nie mniejsze (liczby bez znaku)
większe lub równe (liczby bez znaku)
nie wystąpiło przeniesienie
JE
JZ
ZF = 1 równe
wynik równy zero
JNE
JNZ
ZF = 0 nie równe
wynik różny od zera
JBE
JNA
(CF or ZF) = 1 mniejsze lub równe (liczby bez znaku)
nie większe (liczby bez znaku)
JNBE
JA
(CF or ZF) = 0 nie mniejsze i nie równe (liczby bez znaku)
większe (liczby bez znaku)
JS SF = 1 wynik ujemny (liczby ze znakiem)
JNS SF = 0 wynik nieujemny (liczby ze znakiem)
JP
JPE
PF = 1 parzysta liczba jedynek w bajcie
JNP
JPO
PF = 0 nieparzysta liczba jedynek w bajcie
JL
JNGE
(SF xor OF) = 1 mniejsze (liczby ze znakiem)
nie większe i nie równe (liczby ze znakiem)
JNL
JGE
(SF xor OF) = 0 nie mniejsze (liczby ze znakiem)
większe lub równe (liczby ze znakiem)
JLE
JNG
((SF xor OF) or ZF) = 1 mniejsze lub równe (liczby ze znakiem)
nie większe (liczby ze znakiem)
JNLE
JG
((SF xor OF) or ZF) = 0 nie mniejsze i nie równe (liczby ze znakiem)
większe (liczby ze znakiem)
JECXZ ECX = 0 rejestr ECX zawiera zero
LOOP ECX <> 0 rejestr ECX nie zawiera zera
LOOPE
LOOPZ
ECX <> 0 and ZF = 1 rejestr ECX nie zawiera zera i znacznik zera ustawiony
LOOPNE
LOOPNZ
ECX <> 0 and ZF = 0 rejestr ECX nie zawiera zera i znacznik zera wyzerowany
 

Przypisania warunkowe

Instrukcja Sprawdzany warunek Nadaje bajtowi wartość 1 gdy ..., a 0 w przeciwnym przypadku.
SETO OF = 1 wystąpił nadmiar
SETNO OF = 0 nie wystąpił nadmiar
SETB
SETNAE
SETC
CF = 1 mniejsze (liczby bez znaku)
nie mniejsze i nie równe (liczby bez znaku)
wystąpiło przeniesienie
SETNB
SETAE
SETNC
CF = 0 nie mniejsze (liczby bez znaku)
większe lub równe (liczby bez znaku)
nie wystąpiło przeniesienie
SETE
SETZ
ZF = 1 równe
wynik równy zero
SETNE
SETNZ
ZF = 0 nie równe
wynik różny od zera
SETBE
SETNA
(CF or ZF) = 1 mniejsze lub równe (liczby bez znaku)
nie większe (liczby bez znaku)
SETNBE
SETA
(CF or ZF) = 0 nie mniejsze i nie równe (liczby bez znaku)
większe (liczby bez znaku)
SETS SF = 1 wynik ujemny (liczby ze znakiem)
SETNS SF = 0 wynik nieujemny (liczby ze znakiem)
SETP
SETPE
PF = 1 parzysta liczba jedynek w bajcie
SETNP
SETPO
PF = 0 nieparzysta liczba jedynek w bajcie
SETL
SETNGE
(SF xor OF) = 1 mniejsze (liczby ze znakiem)
nie większe i nie równe (liczby ze znakiem)
SETNL
SETGE
(SF xor OF) = 0 nie mniejsze (liczby ze znakiem)
większe lub równe (liczby ze znakiem)
SETLE
SETNG
((SF xor OF) or ZF) = 1 mniejsze lub równe (liczby ze znakiem)
nie większe (liczby ze znakiem)
SETNLE
SETG
((SF xor OF) or ZF) = 0 nie mniejsze i nie równe (liczby ze znakiem)
większe (liczby ze znakiem)