Assembler - Skok warunkowy
Niniejszy spis zawiera wszystkie (mam nadzieję:)) instrukcje skoku warunkowego; oczywiście wielu z nich nie używa się zbyt często, ale - jak pisałem - jest to zestawienie "dla ciekawych".
Aby móc zrozumieć co oznaczają poniższe instrukcje bez konieczności
uczenia się każdej z nich na pamięć - wystarczy przyswoić podane skróty a później na ich podstawie "rozszyfrowywać" znaczenie instrukcji skoku:
J - | jump if | - skok jeśli |
N - | not | - nie |
A - | above | - powyżej |
G - | greater | - większe |
E - | equal | - równe |
Z - | zero flag | - ZF |
B - | below | - poniżej |
L - | less | - mniej |
O - | Overflow flag | - OF |
P - | parity flag | - PF |
S - | sign flag | - SF |
Podane zestawienia dla A i B obrazujące matematycznie kiedy warunek jest spełniony - są przygotowane przy założeniu, że wykonujemy instrukcję
CMP A, B - nie odwrotnie (dla CMP B,A wszystkie warunki będą odwrócone).
JA (JNBE)
A > B (CF = 0 lub ZF = 0)JAE (JNB)
A >= B (CF = 0)JB (JNAE)
A
JBE (JNA)
A <= B (CF="1" LUB ZF="1)
JE (JZ)
A = B (ZF = 1)JNE (JNZ)
A <> B (ZF = 0)JG (JNLE)
A > B (ZF = 0 lub OF = SF)JGE (JNL)
A >= B (SF = OF)JL (JNGE)
A OF)JLE (JNG)
A <= B (ZF="1" lub SF <> OF)JC
(CF = 1)JNC
(CF = 0)JO
(OF = 1)JNO
(OF = 0)JP (JPE)
(PF = 1)JNP
(PF = 0)JS
(SF = 1)JNS
(SF = 0)
Tutaj musze zaznaczyć, że sporządzając niniejsze zestawienie opierałem się na różnych źródłach - nie mam wogóle doświadczenia z większością tych rzadziej używanych - może się więc okazać, że informacje te nie są do końca ścisłe. Przepraszam więc z góry - jeśliby tak się stało;