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

BTC

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)