Based on Bill Verners' Inside the Java Virtual Machine, McGraw Hill Companies, 1997

aaload - Load reference from array.
  opcode:  50 (0x32)
  usage: aaload
  stack before: ..., arrayref, i
stack after: ..., ref
 
description:

The Java Virtual Machine retrieves reference ref from index i of array arrayref and pushes it on the stack.

exceptions: NullPointerException - arrayref is null
ArrayIndexOutOfBoundsException - i is not a legal index

aastore - Store reference into array.
  opcode:  83 (0x53)
  usage: aastore
  stack before: ..., arrayref, i, ref
stack after: ...
 
description:

The Java Virtual Machine stores reference ref into index i of array arrayref. The arrayref must be an array with component type the same as ref.

exceptions: NullPointerException - arrayref is null
ArrayIndexOutOfBoundsException - i is not a legal index
ArrayStoreException - ref is not compatible with component type of array arrayref

aconst_null - Push null on the stack.
  opcode:  1 (0x1)
  usage: aconst_null
  stack before: ...
stack after: ..., null
 
description:

The Java Virtual Machine pushes a null object reference onto the operand stack.

aload - Load reference from local variable.
  opcode:  25 (0x19)
  usage: aload, index
  stack before: ...
stack after: ..., ref
 
description: The Java Virtual Machine loads value ref from local variable index (unsigned 8-bit) and pushes it on the stack. The value stored in local variable index must be a reference.

aload_0 - Load reference from local variable 0.
  opcode: 42 (0x2a)
  usage: aload_0
  stack before: ...
stack after: ..., ref
 
description: The Java Virtual Machine loads value ref from local variable 0 and pushes it on the stack. The value stored in local variable index must be a reference.

aload_1 - Load reference from local variable 1.
  opcode: 43 (0x2b)
  usage: aload_1
  stack before: ...
stack after: ..., ref
 
description: The Java Virtual Machine loads value ref from local variable 1 and pushes it on the stack. The value stored in local variable index must be a reference.

aload_2 - Load reference from local variable 2.
  opcode:  44 (0x2c)
  usage: aload_2
  stack before: ...
stack after: ..., refe
 
description: The Java Virtual Machine loads value ref from local variable 2) and pushes it on the stack. The value stored in local variable index must be a reference.

aload_3 - Load reference from local variable 3.
  opcode:  45 (0x2d)
  usage: aload_3
  stack before: ...
stack after: ..., ref
 
description:

The Java Virtual Machine loads value ref from local variable 3 and pushes it on the stack. The value stored in local variable index must be a reference.

anewarray - Allocate new array of reference type components.
  opcode:  189 (0xbd)
  usage: anewarray class
  stack before: ..., count
stack after: arrayref
 
description: This instruction takes parameter class and one word from the stack. As a result it pushes on the stack a reference arrayref to a new array of component type class and size count.

areturn - Return reference from method.
  opcode: 176 (0xb0)
  usage: areturn
  stack before: ..., objectref
stack after: [empty]
 
description:

Areturn must be invoked inside a method of return type being e reference. It returns top word from a stack and leaves method stack empty. The objectref must be compatible with the method return type.

arraylength - Get length of array.
  opcode:  190 (0xbe)
  usage: arraylength
  stack before: ..., arrayref
stack after: ..., length
 
description:

The top word of the operand stack, arrayref, must be a reference that points to an array. To execute the arraylength instruction, the Java Virtual Machine pops arrayref and pushes the length of the array pointed to by arrayref.

astore - Store reference into local variable.
  opcode:  58 (0x3a)
  usage: astore index
  stack before: ..., value
stack after: ...
 
description: The instruction takes parameter index and value from the stack. Top word on the stack must be a reference. Index must be an unsigned 8-bit number. As a result the Java Virtual Machine stores value into local variable index.

astore_0 - Store reference or returnAddress into local variable 0.
  opcode:  75 (0x4b)
  usage: astore_0
  stack before: ..., value
stack after: ...
 
description: Top word on the stack must be a reference. As a result the Java Virtual Machine stores value into local variable 0.

astore_1 - Store reference or returnAddress into local variable 1.
  opcode:  76 (0x4c)
  usage: astore_1
  stack before: ..., value
stack after: ...
 
description: Top word on the stack must be a reference. As a result the Java Virtual Machine stores value into local variable 1.

astore_2 - Store reference or returnAddress into local variable 2.
  opcode:  77 (0x4d)
  usage: astore_2
  stack before: ..., value
stack after: ...
 
description: Top word on the stack must be a reference. As a result the Java Virtual Machine stores value into local variable 2.

astore_3 - Store reference or returnAddress into local variable 3.
  opcode:  78 (0x4e)
  usage: astore_3
  stack before: ..., value
stack after: ...
 
description: Top word on the stack must be a reference. As a result the Java Virtual Machine stores value into local variable 3.

athrow - Throw exception or error.
  opcode:  191 (0xbf)
  usage: athrow
  stack before: ..., objectref [stack of invoked method]
stack after: objectref [stack of method in with catch clause was found]
 
description:

The top word of the operand stack, objectref, must be a reference that points either to an instance of class java.lang.Throwable or to an instance of some subclass of java.lang.Throwable. To execute the athrow instruction, the Java Virtual Machine pops objectref from the operand stack. The virtual machine "throws" the exception by searching through the current method's exception table for the most recent catch clause that catches either the class of the throwable object pointed to by objectref, or a subclass of the throwable object's class. If the current method's exception table contains a matching entry, the virtual machine extracts the address of the handler to jump to from the matching exception table entry. The virtual machine pops any words remaining on the operand stack, pushes the objectref, sets the program counter to the handler address, and continues execution there. If the current method's exception table doesn't have a matching catch clause, the virtual machine pops the current method's entire frame and rethrows the exception in the previous method. This process repeats until either a matching catch clause is found or the stack frames for all the methods along the current thread's call stack have been popped. If no catch clause is found by this process, the current thread exits.

If the objectref word is null, the virtual machine throws NullPointerException.