Znacznik
Nazwa
Ustawiany na 1 gdy ..., a zerowany w przeciwnym przypadku.
CF
Carry Flag
wystąpiło przeniesienie lub pożyczka z najbardziej znaczącego bitu wyniku (nadmiar w operacjach
na liczbach bez znaku)
PF
Parity Flag
najmłodsze 8 bitów wyniku zawiera parzystą liczbę jedynek
AF
Asjust Flag
wystąpiło przeniesienie lub pożyczka z najmłodszych 4 bitów rejestru AL (używany w arytmetyce
dziesiętnej)
ZF
Zero Flag
wynik jest równy zero
SF
Sign Flag
najbardziej znaczący bit wyniku (bit znaku dla liczb w kodzie uzupełnień do 2) jest równy 1
OF
Overflow 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)
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
-
-
-
-
-
M
Znaczniki używane w instrukcjach arytmetycznych i warunkowych
Ważniejsze instrukcje modyfikujące znaczniki
BTC
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
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
Skoki 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)
Przypisania warunkowe