Znaczniki używane w instrukcjach arytmetycznych i warunkowych Znacznik
Nazwa
Ustawiany na 1 gdy ..., a zerowany w przeciwnym przypadku.
wystąpiło przeniesienie lub pożyczka z najbardziej znaczącego bitu wyniku (nadmiar w operacjach CF
Carry Flag
na liczbach bez znaku)
PF
Parity Flag
najmłodsze 8 bitów wyniku zawiera parzystą liczbę jedynek wystąpiło przeniesienie lub pożyczka z najmłodszych 4 bitów rejestru AL (używany w arytmetyce AF
Asjust Flag
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
wynik jest zbyt duży lub zbyt mały, aby mógł być zapisany w kodzie uzupełnień do 2 (nadmiar w OF
Overflow Flag
operacjach na liczbach ze znakiem) Ważniejsze instrukcje modyfikujące znaczniki Instrukcja
OF
SF
ZF
AF
PF
CF
AAA
-
-
-
TM
-
M
AAS
AAD
-
M
M
-
M
-
AAM
DAA
-
M
M
TM
M
TM
DAS
ADC
M
M
M
M
M
TM
SBB
ADD
SUB
CMP
M
M
M
M
M
M
CMPS
SCAS
NEG
DEC
M
M
M
M
M
INC
MUL
M
-
-
-
-
M
IMUL
DIV
-
-
-
-
-
-
IDIV
RCL 1
M
TM
RCR 1
RCL count
-
TM
RCR count
ROL 1
M
M
ROR 1
ROL count
-
M
ROR count
SAL 1
SAR 1
M
M
M
-
M
M
SHL 1
SHR 1
SAL count
SAR count
-
M
M
-
M
M
SHL count
SHR count
SHLD
-
M
M
-
M
M
SHRD
BSF
-
-
M
-
-
-
BSR
BT
BTS
-
-
-
-
-
M
BTR
AND
OR
0
M
M
-
M
0
TEST
XOR
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
mniejsze (liczby bez znaku) JNAE
CF = 1
nie mniejsze i nie równe (liczby bez znaku) JC
wystąpiło przeniesienie
JNB
nie mniejsze (liczby bez znaku) JAE
CF = 0
większe lub równe (liczby bez znaku) JNC
nie wystąpiło przeniesienie JE
równe
ZF = 1
JZ
wynik równy zero
JNE
nie równe
ZF = 0
JNZ
wynik różny od zera
JBE
mniejsze lub równe (liczby bez znaku) (CF or ZF) = 1
JNA
nie większe (liczby bez znaku) JNBE
nie mniejsze i nie równe (liczby bez znaku) (CF or ZF) = 0
JA
większe (liczby bez znaku)
JS
SF = 1
wynik ujemny (liczby ze znakiem) JNS
SF = 0
wynik nieujemny (liczby ze znakiem) JP
PF = 1
parzysta liczba jedynek w bajcie JPE
JNP
PF = 0
nieparzysta liczba jedynek w bajcie JPO
JL
mniejsze (liczby ze znakiem) (SF xor OF) = 1
JNGE
nie większe i nie równe (liczby ze znakiem) JNL
nie mniejsze (liczby ze znakiem) (SF xor OF) = 0
JGE
większe lub równe (liczby ze znakiem) JLE
mniejsze lub równe (liczby ze znakiem) ((SF xor OF) or ZF) = 1
JNG
nie większe (liczby ze znakiem) JNLE
nie mniejsze i nie równe (liczby ze znakiem) ((SF xor OF) or ZF) = 0
JG
większe (liczby ze znakiem) JECXZ
ECX = 0
rejestr ECX zawiera zero
LOOP
ECX <> 0
rejestr ECX nie zawiera zera LOOPE
ECX <> 0 and ZF = 1
rejestr ECX nie zawiera zera i znacznik zera ustawiony LOOPZ
LOOPNE
ECX <> 0 and ZF = 0
rejestr ECX nie zawiera zera i znacznik zera wyzerowany LOOPNZ
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
mniejsze (liczby bez znaku) SETNAE
CF = 1
nie mniejsze i nie równe (liczby bez znaku) SETC
wystąpiło przeniesienie
SETNB
nie mniejsze (liczby bez znaku) SETAE
CF = 0
większe lub równe (liczby bez znaku) SETNC
nie wystąpiło przeniesienie SETE
równe
ZF = 1
SETZ
wynik równy zero
SETNE
nie równe
ZF = 0
SETNZ
wynik różny od zera
SETBE
mniejsze lub równe (liczby bez znaku) (CF or ZF) = 1
SETNA
nie większe (liczby bez znaku) SETNBE
nie mniejsze i nie równe (liczby bez znaku) (CF or ZF) = 0
SETA
większe (liczby bez znaku)
SETS
SF = 1
wynik ujemny (liczby ze znakiem) SETNS
SF = 0
wynik nieujemny (liczby ze znakiem) SETP
PF = 1
parzysta liczba jedynek w bajcie SETPE
SETNP
PF = 0
nieparzysta liczba jedynek w bajcie SETPO
SETL
mniejsze (liczby ze znakiem) (SF xor OF) = 1
SETNGE
nie większe i nie równe (liczby ze znakiem) SETNL
nie mniejsze (liczby ze znakiem) (SF xor OF) = 0
SETGE
większe lub równe (liczby ze znakiem) SETLE
mniejsze lub równe (liczby ze znakiem) ((SF xor OF) or ZF) = 1
SETNG
nie większe (liczby ze znakiem) SETNLE
nie mniejsze i nie równe (liczby ze znakiem) ((SF xor OF) or ZF) = 0
SETG
większe (liczby ze znakiem)