Java Byte Code

Skoky

operace argumenty zasobník před a po popis
goto 2: branchbyte1, branchbyte2 [no change] provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
goto_w 4: branchbyte1, branchbyte2, branchbyte3, branchbyte4 [no change] provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 24 + branchbyte2 << 16 + branchbyte3 << 8 + branchbyte4)
if_acmpeq 2: branchbyte1, branchbyte2 value1, value2 → pokud jsou reference shodné, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
if_acmpne 2: branchbyte1, branchbyte2 value1, value2 → pokud nejsou reference shodné, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
if_icmpeq 2: branchbyte1, branchbyte2 value1, value2 → pokud jsou hodnoty typu int shodné, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
if_icmpge 2: branchbyte1, branchbyte2 value1, value2 → pokud je hodnota value1 vetší nebo rovna value2, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
if_icmpgt 2: branchbyte1, branchbyte2 value1, value2 → pokud je hodnota value1 větší než value2, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
if_icmple 2: branchbyte1, branchbyte2 value1, value2 → pokud je hodnota value1 menší nebo rovna value2, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
if_icmplt 2: branchbyte1, branchbyte2 value1, value2 → pokud je hodnota value1 menší než value2, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
if_icmpne 2: branchbyte1, branchbyte2 value1, value2 → pokud nejsou hodnoty typu int shodné, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
ifeq 2: branchbyte1, branchbyte2 value → pokud je hodnota rovna 0, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
ifge 2: branchbyte1, branchbyte2 value → pokud je hodnota větší nebo rovna 0, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
ifgt 2: branchbyte1, branchbyte2 value → pokud je hodnota větší než 0, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
ifle 2: branchbyte1, branchbyte2 value → pokud je hodnota menší nebo rovna 0, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
iflt 2: branchbyte1, branchbyte2 value → pokud je hodnota menší než 0, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
ifne 2: branchbyte1, branchbyte2 value → pokud je hodnota není 0, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
ifnonnull 2: branchbyte1, branchbyte2 value → pokud není hodnota null, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
ifnull 2: branchbyte1, branchbyte2 value → pokud je hodnota null, provede skok na instrukci, která leží na branchoffset; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2)
jsr 2: branchbyte1, branchbyte2 → address provede skok na instrukci, která leží na branchoffse; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 8 + branchbyte2) a uloží návratovou adresu na zásobník
jsr_w 4: branchbyte1, branchbyte2, branchbyte3, branchbyte4 → address provede skok na instrukci, která leží na branchoffse; branchoffset je celé znamenkévé číslo dané jako (branchbyte1 << 24 + branchbyte2 << 16 + branchbyte3 << 8 + branchbyte4) a uloží návratovou adresu na zásobník

Porovnání

operace argumenty zasobník před a po popis
dcmpg
value1, value2 → result porovná hodnoty typu double, a pokud jsou si rovny, uloží na zásobník 0, pokud value1 je menší než value2, uloží -1, pokud value1 je větší než value2, uloží 1, jinak (NaN) uloží 1 (výsledek je typu int)
dcmpl
value1, value2 → result porovná hodnoty typu double, a pokud jsou si rovny, uloží na zásobník 0, pokud value1 je menší než value2, uloží -1, pokud value1 je větší než value2, uloží 1, jinak (NaN) uloží -1 (výsledek je typu int)
fcmpg
value1, value2 → result porovná hodnoty typu float, a pokud jsou si rovny, uloží na zásobník 0, pokud value1 je menší než value2, uloží -1, pokud value1 je větší než value2, uloží 1, jinak (NaN) uloží 1 (výsledek je typu int)
fcmpl
value1, value2 → result porovná hodnoty typu float, a pokud jsou si rovny, uloží na zásobník 0, pokud value1 je menší než value2, uloží -1, pokud value1 je větší než value2, uloží 1, jinak (NaN) uloží -1 (výsledek je typu int)
lcmp
value1, value2 → result porovná hodnoty typu long, a pokud jsou si rovny, uloží na zásobník 0, pokud value1 je menší než value2, uloží -1, jinak uloží 1 (výsledek je typu int)

Last update on 29. 11. 2018 01:53
Powered by Schemik.

© Petr Krajča, 2010, 2012
petr.krajca (at) upol.cz