0x59dup copies the top number of stacks and pushes the copies to the top of the stack. 0x5adup_x1 copies the top number of stacks and pushes the two copies to the top of the stack. 0x5bdup_x2 copy the top number of stacks and press three (or two) copies to the top of the stack. 0x5cdup2 copies one (long or double) or two (other) numbers at the top of the stack and pushes the copy to the top of the stack. 0x5ddup
0x59 dup copies the top number of stacks and pushes the copies to the top of the stack. 0x5a dup_x1 copies the top number of stacks and pushes two copies to the top of the stack. 0x5b dup_x2 copies the top number of stacks and pushes three (or two) copies to the top of the stack. 0x5c dup2 copies one (long or double) or two (other) numbers at the top of the stack and pushes the copy to the top of the stack. 0x5d dup
0x59 dup copies the top number of stacks and pushes the copy value to the top of the stack.
0x5a dup_x1 copies the top number of stacks and pushes the two copies to the top of the stack.
0x5b dup_x2 copies the top number of stacks and pushes three (or two) copies to the top of the stack.
0x5c dup2 copies one (long or double) or two (other) values at the top of the stack and pushes the copy value to the top of the stack.
0x5d dup2_x1 dup_x1 command dual version
0x5e dup2_x2 dup_x2 command dual version
0x5f swap swaps the top two values of the stack (values cannot be of the long or double type ).
0x60 iadd adds the top two int values of the stack and pushes the result to the top of the stack.
0x61 ladd adds the top two long values of the stack and pushes the result to the top of the stack.
0x62 fadd adds the top two float values of the stack and pushes the result to the top of the stack.
0x63 dadd adds the top two double values of the stack and pushes the result to the top of the stack.
0x64 isub subtract the top two int values of the stack and press the result to the top of the stack.
0x65 |
Lsub |
Subtract the two long values at the top of the stack and press the result to the top of the stack. |
0x66 |
Fsub |
Subtract the two float values at the top of the stack and press the result to the top of the stack. |
0x67 |
Dsub |
Subtract the two double values at the top of the stack and press the result to the top of the stack. |
0x68 |
Imul |
Multiply the two int-type values at the top of the stack and press the result to the top of the stack .. |
0x69 |
Lmul |
Multiply the two long-type values at the top of the stack and press the result to the top of the stack. |
0x6a |
Fmul |
Multiply the top two float values of the stack and press the result to the top of the stack. |
0x6b |
Dmul |
Multiply the two double values at the top of the stack and press the result to the top of the stack. |
0x6c |
Ip |
Remove the two int-type values at the top of the stack and press the result to the top of the stack. |
0x6d |
Lp |
Remove the two long values at the top of the stack and press the result to the top of the stack. |
0x6e |
Fp |
Remove the top two float values of the stack and press the result to the top of the stack. |
0x6f |
Dp |
Remove the top two double values of the stack and press the result to the top of the stack. |
0x70 |
Irem |
Perform the modulo operation on the top two int values of the stack and press the result to the top of the stack. |
0x71 |
Lrem |
Perform the modulo operation on the top two long values of the stack and press the result to the top of the stack. |
0x72 |
Frem |
Perform the modulo operation on the top two float values of the stack and press the result to the top of the stack. |
0x73 |
Drem |
Perform the modulo operation on the top two double values of the stack and press the result to the top of the stack. |
0x74 |
Ineg |
Take the int value at the top of the stack as a negative value and press the result to the top of the stack. |
0x75 |
Lneg |
Take the long value at the top of the stack as a negative value and press the result to the top of the stack. |
0x76 |
Fneg |
Take the float value at the top of the stack as a negative value and press the result to the top of the stack. |
0x77 |
Dneg |
Take the double type value at the top of the stack as a negative value and press the result to the top of the stack. |
0x78 |
Ishl |
Shift the int value left to the specified number of digits and press the result to the top of the stack. |
0x79 |
Lshl |
Shift the long value left to the specified number of digits and press the result to the top of the stack. |
0x7a |
Ishr |
Shift the right (Signed) value of the int type to the specified number of digits and press the result to the top of the stack. |
0x7b |
Lshr |
Shift the right (Signed) value of the long type to the specified number of digits and press the result to the top of the stack. |
0x7c |
Iushr |
Shift the right (unsigned) value of the int type to the specified number of digits and press the result to the top of the stack. |
0x7d |
Lushr |
Shift the right (unsigned) value of the long value to the specified number of digits and press the result to the top of the stack. |
0x7e |
Iand |
Set the top two int values of the stack as "bitwise AND" and press the result to the top of the stack. |
0x7f |
Land |
Set the top two long values of the stack as "bitwise AND" and press the result to the top of the stack. |
0x80 |
Ior |
Use the two int-type values at the top of the stack as "bitwise OR" and press the result to the top of the stack. |
0x81 |
Lor |
Set the top two long values of the stack as "bitwise OR" and press the result to the top of the stack. |
0x82 |
Ixor |
Use the two int-type values at the top of the stack as "bitwise XOR" and press the result to the top of the stack. |
0x83 |
Lxor |
Set the top two long values of the stack as "bitwise XOR" and press the result to the top of the stack. |
0x84 |
Iinc |
Adds a specified value to the specified int type variable. |
0x85 |
I2l |
Forcibly convert the int value at the top of the stack to a long value and press the result to the top of the stack. |
0x86 |
I2f |
Forcibly convert the int value of the stack to a float value and press the result to the top of the stack. |
0x87 |
I2d |
Forcibly convert the int value at the top of the stack to a double value and press the result to the top of the stack. |
0x88 |
L2i |
Forcibly convert the long type value at the top of the stack to an int type value and press the result to the top of the stack. |
0x89 |
L2f |
Forcibly convert the long value of the top stack to a float value and press the result to the top of the stack. |
0x8a |
L2d |
Forcibly convert the value of the long type at the top of the stack to a value of the double type and press the result to the top of the stack. |
0x8b |
F2i |
Forcibly convert the top float value of the stack to an int value and press the result to the top of the stack. |
0x8c |
F2l |
Forcibly convert the top float value of the stack to a long value and press the result to the top of the stack. |
0x8d |
F2d |
Forcibly convert the top float value of the stack to a double value and press the result to the top of the stack. |
0x8e |
D2i |
Forcibly convert the double type value at the top of the stack to an int type value and press the result to the top of the stack. |
0x8f |
D2l |
Forcibly convert the double value at the top of the stack to a long value and press the result to the top of the stack. |
0x90 |
D2f |
Forcibly convert the double value at the top of the stack to a float value and press the result to the top of the stack. |
0x91 |
I2b |
Forcibly convert the int value at the top of the stack to a byte value and press the result to the top of the stack. |
0x92 |
I2c |
Forcibly convert the int value at the top of the stack to a char value and press the result to the top of the stack. |
0x93 |
I2s |
Forcibly convert the int value at the top of the stack to the short value and press the result to the top of the stack. |
0x94 |
Lcmp |
Compare the two long values at the top of the stack, and press the result (,-1) into the top of the stack. |
0x95 |
Fcmpl |
Compare the top two float values of the stack and press the result (,-1) to the top of the stack. When one of the values is NaN, press-1 to the top of the stack. |
0x96 |
Fcmpg |
Compare the top two float values of the stack and press the result (,-1) to the top of the stack. When one of the values is NaN, press 1 to the top of the stack. |
0x97 |
Dcmpl |
Compare the values of the double type at the top of the stack and press the result (,-1) to the top of the stack. When one value is NaN, press-1 to the top of the stack. |
0x98 |
Dcmpg |
Compare the values of the double type at the top of the stack and press the result (,-1) into the top of the stack. When one of the values is NaN, press 1 to the top of the stack. |
0x99 |
Ifeq |
Jump when the int value at the top of the stack is equal to 0. |
0x9a |
Ifne |
Jump when the int value at the top of the stack is not equal to 0. |
0x9b |
Iflt |
Jump when the int value at the top of the stack is smaller than 0. |
0x9c |
Ifge |
Jump when the int value at the top of the stack is greater than or equal to 0. |
0x9d |
Ifgt |
Jump when the int value at the top of the stack is greater than 0. |
0x9e |
Ifle |
Jump when the int value at the top of the stack is less than or equal to 0. |
0x9f |
If_icmpeq |
Compare the two int-type values at the top of the stack, and jump when the result is equal to 0. |
0xa0 |
If_icmpne |
Compare the values of the two int types at the top of the stack. When the result is not equal to 0, the system jumps. |
0xa1 |
If_icmplt |
Compare the top two int values of the stack. When the result is smaller than 0, the system jumps. |
0xa2 |
If_icmpge |
Compare the two int-type values at the top of the stack. When the result is greater than or equal to 0, the system jumps. |
0xa3 |
If_icmpgt |
Compare the values of the top two int types on the stack. When the result is greater than 0, it jumps. |
0xa4 |
If_icmple |
Compare the values of the two int types at the top of the stack. When the result is smaller than or equal to 0, the system jumps. |
0xa5 |
If_acmpeq |
Compare the two reference values at the top of the stack, and jump when the results are equal. |
0xa6 |
If_acmpne |
Compare the two reference values at the top of the stack, and jump when the results are not equal. |
0xa7 |
Goto |
Unconditional jump. |
0xa8 |
Jsr |
Jump to the specified 16-bit offset and press the next jsr instruction address to the top of the stack. |
0xa9 |
Ret |
Return the command location of the index specified by the local variable (usually used in combination with jsr and jsr_w ). |
0xaa |
Tableswitch |
It is used for switch conditional jump, and the case value is continuous (Variable Length command ). |
0xab |
Lookupswitch |
Used for switch conditional jump, case value is not continuous (Variable Length command ). |
0xac |
Ireturn |
Returns int from the current method. |
0xad |
Lreturn |
Returns long from the current method. |
0xae |
Freturn |
Returns float from the current method. |
0xaf |
Dreturn |
Returns double from the current method. |
0xb0 |
Areturn |
Returns an object reference from the current method. |
0xb1 |
Return |
Return void from the current method. |
0xb2 |
Getstatic |
Obtains the static domain of the specified class and pushes its value to the top of the stack. |
0xb3 |
Putstatic |
Assign values to the static fields of the specified class. |
0xb4 |
Getfield |
Obtains the instance domain of the specified class and pushes its value to the top of the stack. |
0xb5 |
Putfield |
Assign values to the instance domains of the specified class. |
0xb6 |
Invokevirtual |
Call the instance method. |
0xb7 |
Invokespecial |
Call the superclass constructor, instance initialization method, and private method. |
0xb8 |
Invokestatic |
Call static methods. |
0xb9 |
Invokeinterfac E |
Call the interface method. |
0xba |
Invokedynamic |
Call Dynamic Link Method 1. |
0xbb |
New |
Create an object and push its reference value to the top of the stack. |
0xbc |
Newarray |
Create an array of the specified original type (such as int, float, char...) and press its reference value to the top of the stack. |
0xbd |
Anewarray |
Create an array of referenced types (such as classes, interfaces, and arrays) and press the referenced values Top of the stack. |
0xbe |
Arraylength |
Obtain the length value of the array and press it to the top of the stack. |
0xbf |
Athrow |
Throw an exception at the top of the stack. |
0xc0 |
Checkcast |
Checks type conversion and throws ClassCastException. |
0xc1 instanceof checks whether the object is an instance of the specified class. If it is to press 1 to the top of the stack, otherwise 0 to the top of the stack.
0xc2 monitorenter obtains the object's monitor, which is used for synchronization methods or synchronization blocks.
0xc3 monitorexit releases the monitor of the object for Synchronous methods or synchronization blocks.
0xc4 wide extends the index width for accessing the local variable table.
0xc5 multianewarray creates a multi-dimensional array of the specified type and dimension (when executing this command, the length value of each dimension must be included in the Operation stack), and pushes the reference value to the top of the stack.
Jump when 0xc6 ifnull is null.
Jump when 0xc7 ifnonnull is not null.
0xc8 goto_w unconditional jump (wide index ).
0xc9 jsr_w redirects to the specified 32-bit address offset and pushes the next instruction address of jsr_w to the top of the stack.
Reserved command
0xca breakpoint indicates the breakpoint during debugging.
0xfe impdep1 is a language backdoor used in a specific hardware.
0xff impdep1 is a language backdoor used in a specific hardware.