aaload=load onto the stack a reference from an array
aastore=store into a reference in an array
aconst_null=push a
aload=load a reference onto the stack from a local variable
aload_0=load a reference onto the stack from local variable 0
aload_1=load a reference onto the stack from local variable 1
aload_2=load a reference onto the stack from local variable 2
aload_3=load a reference onto the stack from local variable 3
anewarray=create a new array of references of length
areturn=return a reference from a method
arraylength=get the length of an array
astore=store a reference into a local variable
astore_0=store a reference into local variable 0
astore_1=store a reference into local variable 1
astore_2=store a reference into local variable 2
astore_3=store a reference into local variable 3
athrow=throws an error or exception (notice that the rest of the stack is cleared, leaving only a reference to the Throwable)
baload=load a byte or Boolean value from an array
bastore=store a byte or Boolean value into an array
bipush=push a
breakpoint=reserved for breakpoints in Java debuggers; should not appear in any class file
caload=load a char from an array
castore=store a char into an array
checkcast=checks whether an
d2f=convert a double to a float
d2i=convert a double to an int
d2l=convert a double to a long
dadd=add two doubles
daload=load a double from an array
dastore=store a double into an array
dcmpg=compare two doubles
dcmpl=compare two doubles
dconst_0=push the constant
dconst_1=push the constant
ddiv=divide two doubles
dload=load a double
dload_0=load a double from local variable 0
dload_1=load a double from local variable 1
dload_2=load a double from local variable 2
dload_3=load a double from local variable 3
dmul=multiply two doubles
dneg=negate a double
drem=get the remainder from a division between two doubles
dreturn=return a double from a method
dstore=store a double
dstore_0=store a double into local variable 0
dstore_1=store a double into local variable 1
dstore_2=store a double into local variable 2
dstore_3=store a double into local variable 3
dsub=subtract a double from another
dup=duplicate the value on top of the stack
dup_x1=insert a copy of the top value into the stack two values from the top. value1 and value2 must not be of the type double or long.
dup_x2=insert a copy of the top value into the stack two (if value2 is double or long it takes up the entry of value3, too) or three values (if value2 is neither double nor long) from the top
dup2=duplicate top two stack words (two values, if value1 is not double nor long; a single value, if value1 is double or long)
dup2_x1=duplicate two words and insert beneath third word (see explanation above)
dup2_x2=duplicate two words and insert beneath fourth word
f2d=convert a float to a double
f2i=convert a float to an int
f2l=convert a float to a long
fadd=add two floats
faload=load a float from an array
fastore=store a float in an array
fcmpg=compare two floats
fcmpl=compare two floats
fconst_0=push
fconst_1=push
fconst_2=push
fdiv=divide two floats
fload=load a float
fload_0=load a float
fload_1=load a float
fload_2=load a float
fload_3=load a float
fmul=multiply two floats
fneg=negate a float
frem=get the remainder from a division between two floats
freturn=return a float
fstore=store a float
fstore_0=store a float
fstore_1=store a float
fstore_2=store a float
fstore_3=store a float
fsub=subtract two floats
getfield=get a field
getstatic=get a static field
goto=goes to another instruction at
goto_w=goes to another instruction at
i2b=convert an int into a byte
i2c=convert an int into a character
i2d=convert an int into a double
i2f=convert an int into a float
i2l=convert an int into a long
i2s=convert an int into a short
iadd=add two ints
iaload=load an int from an array
iand=perform a bitwise and on two integers
iastore=store an int into an array
iconst_m1=load the int value −1 onto the stack
iconst_0=load the int value 0 onto the stack
iconst_1=load the int value 1 onto the stack
iconst_2=load the int value 2 onto the stack
iconst_3=load the int value 3 onto the stack
iconst_4=load the int value 4 onto the stack
iconst_5=load the int value 5 onto the stack
idiv=divide two integers
if_acmpeq=if references are equal, branch to instruction at
if_acmpne=if references are not equal, branch to instruction at
if_icmpeq=if ints are equal, branch to instruction at
if_icmpge=if
if_icmpgt=if
if_icmple=if
if_icmplt=if
if_icmpne=if ints are not equal, branch to instruction at
ifeq=if
ifge=if
ifgt=if
ifle=if
iflt=if
ifne=if
ifnonnull=if
ifnull=if
iinc=increment local variable
iload=load an int
iload_0=load an int
iload_1=load an int
iload_2=load an int
iload_3=load an int
impdep1=reserved for implementation-dependent operations within debuggers; should not appear in any class file
impdep2=reserved for implementation-dependent operations within debuggers; should not appear in any class file
imul=multiply two integers
ineg=negate int
instanceof=determines if an object
invokedynamic=invokes a dynamic method and puts the result on the stack (might be void); the method is identified by method reference
invokeinterface=invokes an interface method on object
invokespecial=invoke instance method on object
invokestatic=invoke a static method and puts the result on the stack (might be void); the method is identified by method reference
invokevirtual=invoke virtual method on object
ior=bitwise int or
irem=logical int remainder
ireturn=return an integer from a method
ishl=int shift left
ishr=int arithmetic shift right
istore=store int
istore_0=store int
istore_1=store int
istore_2=store int
istore_3=store int
isub=int subtract
iushr=int logical shift right
ixor=int xor
jsr=jump to subroutine at
jsr_w=jump to subroutine at
l2d=convert a long to a double
l2f=convert a long to a float
l2i=convert a long to a int
ladd=add two longs
laload=load a long from an array
land=bitwise and of two longs
lastore=store a long to an array
lcmp=push 0 if the two longs are the same, 1 if value1 is greater than value2, -1 otherwise
lconst_0=push the long 0 onto the stack
lconst_1=push the long 1 onto the stack
ldc=push a constant
ldc_w=push a constant
ldc2_w=push a constant
ldiv=divide two longs
lload=load a long value from a local variable
lload_0=load a long value from a local variable 0
lload_1=load a long value from a local variable 1
lload_2=load a long value from a local variable 2
lload_3=load a long value from a local variable 3
lmul=multiply two longs
lneg=negate a long
lookupswitch=a target address is looked up from a table using a key and execution continues from the instruction at that address
lor=bitwise or of two longs
lrem=remainder of division of two longs
lreturn=return a long value
lshl=bitwise shift left of a long
lshr=bitwise shift right of a long
lstore=store a long
lstore_0=store a long
lstore_1=store a long
lstore_2=store a long
lstore_3=store a long
lsub=subtract two longs
lushr=bitwise shift right of a long
lxor=bitwise exclusive or of two longs
monitorenter=enter monitor for object ("grab the lock" – start of synchronized() section)
monitorexit=exit monitor for object ("release the lock" – end of synchronized() section)
multianewarray=create a new array of
new=create new object of type identified by class reference in constant pool
newarray=create new array with
nop=perform no operation
pop=discard the top value on the stack
pop2=discard the top two values on the stack (or one value, if it is a double or long)
putfield=set field to
putstatic=set static field to
ret=continue execution from address taken from a local variable
return=return void from method
saload=load short from array
sastore=store short to array
sipush=push a short onto the stack
swap=swaps two top words on the stack (note that value1 and value2 must not be double or long)
tableswitch=continue execution from an address in the table at offset
wide=execute
