Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
60
2.Podstawyprogramowaniaprocesorówrodzinyx86wtrybierzeczywistym
Tabela2.4.Instrukcjeskokówwarunkowych
JE
JNE
JL/JNGE
JLE/JNG
JG/JNLE
JGE/JNL
JB/JNAE
JBE/JNA
JA/JNBE
JAE/JNB
Mnemoniki
SETE
SETNE
SETL/SETNGE
SETLE/SETNG
SETG/SETNLE
SETGE/SETNL
SETB/SETNAE
SETBE/SETNA
SETA/SETNBE
SETAE/SETNB
Dlaliczbzeznakiem
Dladowolnychliczb
Dlaliczbbezznaku
arg1=arg2
arg1≠arg2
arg1<arg2
arg1<=arg2
arg1>arg2
arg1>=arg2
arg1<arg2
arg1<=arg2
arg1>arg2
arg1>=arg2
Warunek,przyktórym
występujeskok
Z=1
Z=0
S≠O
S≠OlubZ=1
S=OiZ=0
S=O
C=1
C=1lubZ=1
C=0iZ=0
C=0
Stanyflag,przyktórych
występujeskok
Rozważmyfragmentprogramuwyznaczającywiększązdwóchliczb16-bitowychX
iY.Zadanierozwiążemydlaliczbbezznakuorazliczbzeznakiem.
;Liczbybezznaku
MOVAX,X
CMPAX,Y
JAEwynik
MOVAX,Y
wynik:
MOVZ,AX
;Liczbyzeznakiem
MOVAX,X
CMPAX,Y
JGEwynik
MOVAX,Y
wynik:
MOVZ,AX
Drugągrupęinstrukcjiskokówwarunkowychstanowiąinstrukcjetestującekonkret-
nebityrejestruflagowego.Budowatychinstrukcjijestnastępująca:
JX<etykieta>
lub
JNX<etykieta>
gdzieliteraXoznaczanazwębiturejestruflagowego(Z,S,C,O,P).Instrukcjetemożna
stosowaćpodowolnychoperacjacharytmetycznychlublogicznych,anietylkoporoz-
kazieCMP(tabela2.5).
Tabela2.5.Instrukcjeskokówwarunkowychtestująceposzczególnebityrejestruflagowego
JZ
JS
JC
JO
JP
Mnemoniki
SETZ
SETS
SETC
SETO
SETP
Z=1
S=1
C=1
O=1
P=1
Warunekwykonaniaskoku
JNZ
JNS
JNC
JNO
JNP
Mnemoniki
SETNZ
SETNS
SETNC
SETNO
SETNP
Z=0
S=0
C=0
O=0
P=0
Warunekwykonaniaskoku