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 |