| operace |
argumenty |
zasobník před a po |
popis |
| aconst_null |
|
→ null |
uloží na zásobník null |
| dconst_0 |
|
→ 0.0 |
načte hodnotu 0.0 (typu double) na zásobník |
| dconst_1 |
|
→ 1.0 |
načte hodnotu 1.0 (typu double) na zásobník |
| fconst_0 |
|
→ 0.0f |
načte hodnotu 0.0f (typu float) na zásobník |
| fconst_1 |
|
→ 1.0f |
načte hodnotu 1.0f (typu float) na zásobník |
| fconst_2 |
|
→ 2.0f |
načte hodnotu 2.0f (typu float) na zásobník |
| iconst_m1 |
|
→ -1 |
načte hodnotu -1 (typu int) na zásobník |
| iconst_0 |
|
→ 0 |
načte hodnotu 0 (typu int) na zásobník |
| iconst_1 |
|
→ 1 |
načte hodnotu 1 (typu int) na zásobník |
| iconst_2 |
|
→ 2 |
načte hodnotu 2 (typu int) na zásobník |
| iconst_3 |
|
→ 3 |
načte hodnotu 3 (typu int) na zásobník |
| iconst_4 |
|
→ 4 |
načte hodnotu 4 (typu int) na zásobník |
| iconst_5 |
|
→ 5 |
načte hodnotu 5 (typu int) na zásobník |
| lconst_0 |
|
→ 0L |
načte hodnotu 0L (typu long) na zásobník |
| lconst_1 |
|
→ 1L |
načte hodnotu 1L (typu long) na zásobník |
| operace |
argumenty |
zasobník před a po |
popis |
| bipush |
1: byte |
→ value |
umístí na zásobník hodnotu typu byte (provádí konverzi na int) |
| dup |
|
value → value, value |
zduplikuje hodnotu na vrcholu zásobníku |
| dup_x1 |
|
value2, value1 → value1, value2, value1 |
vytvoří kopii hodnoty na vrcholu zásobníku podle schématu, hodnoty value1 a value2 nesmí být typu double or long |
| dup_x2 |
|
value3, value2, value1 → value1, value3, value2, value1 |
vytvoří kopie hodnot na vrcholu zásobníku podle schématu |
| dup2 |
|
{value2, value1} → {value2, value1}, {value2, value1} |
vytvoří kopie hodnot na vrcholu zásobníku podle schématu |
| dup2_x1 |
|
value3, {value2, value1} → {value2, value1}, value3, {value2, value1} |
vytvoří kopie hodnot na vrcholu zásobníku podle schématu |
| dup2_x2 |
|
{value4, value3}, {value2, value1} → {value2, value1}, {value4, value3}, {value2, value1} |
vytvoří kopie hodnot na vrcholu zásobníku podle schématu |
| pop |
|
value → |
odstraní hodnotu z vrcholu zásobníku |
| pop2 |
|
{value2, value1} → |
odstraní dvě hodnoty z vrcholu zásobníku (případně jednu, pokud to je hodnota typu long nebo double) |
| sipush |
2: byte1, byte2 |
→ value |
umístí na zásobník hodnotu typu short (provádí konverzi na int) |
| swap |
|
value2, value1 → value1, value2 |
prohodí dvě hodnoty na vrcholu zásobníku (value1 a value2 nesmí být typu double nebo long) |
| operace |
argumenty |
zasobník před a po |
popis |
| aload |
1: index |
→ objectref |
načte na zásobník referenci z lokální proměnné #index |
| aload_0 |
|
→ objectref |
načte na zásobník referenci z lokální proměnné 0 |
| aload_1 |
|
→ objectref |
načte na zásobník referenci z lokální proměnné 1 |
| aload_2 |
|
→ objectref |
načte na zásobník referenci z lokální proměnné 2 |
| aload_3 |
|
→ objectref |
načte na zásobník referenci z lokální proměnné 3 |
| dload |
1: index |
→ value |
načte na zásobník hodnotu typu double z lokální proměnné #index |
| dload_0 |
|
→ value |
načte na zásobník hodnotu typu double z lokální proměnné 0 |
| dload_1 |
|
→ value |
načte na zásobník hodnotu typu double z lokální proměnné 1 |
| dload_2 |
|
→ value |
načte na zásobník hodnotu typu double z lokální proměnné 2 |
| dload_3 |
|
→ value |
načte na zásobník hodnotu typu double z lokální proměnné 3 |
| fload |
1: index |
→ value |
načte na zásobník hodnotu typu float z lokální proměnné #index |
| fload_0 |
|
→ value |
načte na zásobník hodnotu typu float z lokální proměnné 0 |
| fload_1 |
|
→ value |
načte na zásobník hodnotu typu float z lokální proměnné 1 |
| fload_2 |
|
→ value |
načte na zásobník hodnotu typu float z lokální proměnné 2 |
| fload_3 |
|
→ value |
načte na zásobník hodnotu typu float z lokální proměnné 3 |
| iload |
1: index |
→ value |
načte na zásobník hodnotu typu int z lokální proměnné #index |
| iload_0 |
|
→ value |
načte na zásobník hodnotu typu int z lokální proměnné 0 |
| iload_1 |
|
→ value |
načte na zásobník hodnotu typu int z lokální proměnné 1 |
| iload_2 |
|
→ value |
načte na zásobník hodnotu typu int z lokální proměnné 2 |
| iload_3 |
|
→ value |
načte na zásobník hodnotu typu int z lokální proměnné 3 |
| ldc |
1: index |
→ value |
umístí na zásobník hodnotu konstanty #index z constant poolu (použitelné pro String, int, float) |
| ldc_w |
2: indexbyte1, indexbyte2 |
|
umístí na zásobník hodnotu konstanty #index z constant poolu (použitelné pro String, int, float); index je dán jako (indexbyte1 << 8 + indexbyte2) |
| ldc2_w |
2: indexbyte1, indexbyte2 |
|
umístí na zásobník hodnotu konstanty #index z constant poolu (použitelné pro double a long); index je dán jako (indexbyte1 << 8 + indexbyte2) |
| lload |
1: index |
→ value |
načte na zásobník hodnotu typu long z lokální proměnné #index |
| lload_0 |
|
→ value |
načte na zásobník hodnotu typu long z lokální proměnné 0 |
| lload_1 |
|
→ value |
načte na zásobník hodnotu typu long z lokální proměnné 1 |
| lload_2 |
|
→ value |
načte na zásobník hodnotu typu long z lokální proměnné 2 |
| lload_3 |
|
→ value |
načte na zásobník hodnotu typu long z lokální proměnné 3 |
| operace |
argumenty |
zasobník před a po |
popis |
| dadd |
|
value1, value2 → result |
součet dvou hodnot typu double |
| ddiv |
|
value1, value2 → result |
podíl dvou hodnot typu double (result = value1 / value2) |
| dmul |
|
value1, value2 → result |
součin dvou hodnot typu double |
| dneg |
|
value → result |
negace hodnoty typu double |
| drem |
|
value1, value2 → result |
zbytek po dělení hodnot typu double |
| dsub |
|
value1, value2 → result |
rozdíl dvou hodnot typu double (result = value1 - value2) |
| fadd |
|
value1, value2 → result |
součet dvou hodnot typu float |
| fdiv |
|
value1, value2 → result |
podíl dvou hodnot typu float (result = value1 / value2) |
| fmul |
|
value1, value2 → result |
součin dvou hodnot typu float |
| fneg |
|
value → result |
negace hodnoty typu float |
| frem |
|
value1, value2 → result |
zbytek po dělení hodnot typu float |
| fsub |
|
value1, value2 → result |
rozdíl dvou hodnot typu float (result = value1 - value2) |
| iadd |
|
value1, value2 → result |
součet dvou hodnot typu int |
| idiv |
|
value1, value2 → result |
podíl dvou hodnot typu int (result = value1 / value2) |
| iinc |
2: index, const |
[No change] |
inkrementuje lokální proměnnou #index o hodnotu const (která odpovídá jednobytové celočíselné hodnotě se znaménkem) |
| imul |
|
value1, value2 → result |
součin dvou hodnot typu int |
| ineg |
|
value → result |
součin dvou hodnot typu |
| irem |
|
value1, value2 → result |
zbytek po dělení hodnot typu int (result = value1 - (value1 / value2) * value2) |
| isub |
|
value1, value2 → result |
rozdíl dvou hodnot typu int (result = value1 - value2) |
| ladd |
|
value1, value2 → result |
součet dvou hodnot typu long |
| ldiv |
|
value1, value2 → result |
podíl dvou hodnot typu long (result = value1 / value2) |
| lmul |
|
→ value |
součin dvou hodnot typu long |
| lneg |
|
value → result |
negace hodnoty typu long |
| lrem |
|
value1, value2 → result |
zbytek po dělení hodnot typu long (result = value1 - (value1 / value2) * value2) |
| lsub |
|
value1, value2 → result |
rozdíl dvou hodnot typu long (result = value1 - value2) |
| operace |
argumenty |
zasobník před a po |
popis |
| d2f |
|
value → result |
převede hodnotu typu double na typ float |
| d2i |
|
value → result |
převede hodnotu typu double na typ int |
| d2l |
|
value → result |
převede hodnotu typu double na typ long |
| f2d |
|
value → result |
převede hodnotu typu float na typ double |
| f2i |
|
value → result |
převede hodnotu typu float na typ int |
| f2l |
|
value → result |
převede hodnotu typu float na typ long |
| i2b |
|
value → result |
převede hodnotu typu int na typ byte |
| i2c |
|
value → result |
převede hodnotu typu int na typ character |
| i2d |
|
value → result |
převede hodnotu typu int na typ double |
| i2f |
|
value → result |
převede hodnotu typu int na typ float |
| i2l |
|
value → result |
převede hodnotu typu int na typ long |
| i2s |
|
value → result |
převede hodnotu typu int na typ short |
| l2d |
|
value → result |
převede hodnotu typu long na typ double |
| l2f |
|
value → result |
převede hodnotu typu long na typ float |
| l2i |
|
value → result |
převede hodnotu typu long na typ int |
| operace |
argumenty |
zasobník před a po |
popis |
| iand |
|
value1, value2 → result |
bitový součin hodnot typu int |
| ior |
|
value1, value2 → result |
bitový součet hodnot typu int |
| ishl |
|
value1, value2 → result |
bitový posun hodnoty value1 (typu int) o value2 pozic vlevo |
| ishr |
|
value1, value2 → result |
aritmetický bitový posun hodnoty value1 (typu int) o value2 (int) pozic vpravo (doplní se nejvyšší bit) |
| iushr |
|
value1, value2 → result |
bitový posun hodnoty value1 (typu int) o value2 (int) pozic vpravo (doplní se 0) |
| ixor |
|
value1, value2 → result |
bitová non-ekvivalence (xor) hodnot typu int |
| land |
|
value1, value2 → result |
bitový součin hodnot typu long |
| lor |
|
value1, value2 → result |
bitový součet hodnot typu long |
| lshl |
|
value1, value2 → result |
bitový posun hodnoty value1 (typu long) o value2 (int) pozic vlevo |
| lshr |
|
value1, value2 → result |
aritmetický bitový posun hodnoty value1 (typu long) o value2 (int) pozic vpravo (doplní se nejvyšší bit) |
| lushr |
|
value1, value2 → result |
bitový posun hodnoty value1 (typu long) o value2 (int) pozic vpravo (doplní se 0) |
| lxor |
|
value1, value2 → result |
bitová non-ekvivalence (xor) hodnot typu long |