Środa 07 Maj 2025r. Godz 00:00:00      
Postów: 251      

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;