参考: The Java Virtual Machine Specification, Second Edition
Assembly | Description | |
---|---|---|
0x00 | nop | Do nothing |
0x01 | aconst_null | Push null |
0x02 | iconst_m1 | Push int constant |
0x03 | iconst_0 | Push int constant |
0x04 | iconst_1 | Push int constant |
0x05 | iconst_2 | Push int constant |
0x06 | iconst_3 | Push int constant |
0x07 | iconst_4 | Push int constant |
0x08 | iconst_5 | Push int constant |
0x09 | lconst_0 | Push long constant |
0x0a | lconst_1 | Push long constant |
0x0b | fconst_0 | Push float |
0x0c | fconst_1 | Push float |
0x0d | fconst_2 | Push float |
0x0e | dconst_0 | Push double |
0x0f | dconst_1 | Push double |
0x10 | bipush | Push byte |
0x11 | sipush | Push short |
0x12 | ldc | Push item from runtime constant pool |
0x13 | ldc_w | Push item from runtime constant pool (wide index) |
0x14 | ldc2_w | Push long or double from runtime constant pool (wide index) |
0x15 | iload | Load int from local variable |
0x16 | lload | Load long from local variable |
0x17 | fload | Load float from local variable |
0x18 | dload | Load double from local variable |
0x19 | aload | Load reference from local variable |
0x1a | iload_0 | Load int from local variable |
0x1b | iload_1 | Load int from local variable |
0x1c | iload_2 | Load int from local variable |
0x1d | iload_3 | Load int from local variable |
0x1e | lload_0 | Load long from local variable |
0x1f | lload_1 | Load long from local variable |
0x20 | lload_2 | Load long from local variable |
0x21 | lload_3 | Load long from local variable |
0x22 | fload_0 | Load float from local variable |
0x23 | fload_1 | Load float from local variable |
0x24 | fload_2 | Load float from local variable |
0x25 | fload_3 | Load float from local variable |
0x26 | dload_0 | Load double from local variable |
0x27 | dload_1 | Load double from local variable |
0x28 | dload_2 | Load double from local variable |
0x29 | dload_3 | Load double from local variable |
0x2a | aload_0 | Load reference from local variable |
0x2b | aload_1 | Load reference from local variable |
0x2c | aload_2 | Load reference from local variable |
0x2d | aload_3 | Load reference from local variable |
0x2e | iaload | Load int from array |
0x2f | laload | Load long from array |
0x30 | faload | Load float from array |
0x31 | daload | Load double from array |
0x32 | aaload | Load reference from array |
0x33 | baload | Load byte or boolean from array |
0x34 | caload | Load char from array |
0x35 | saload | Load short from array |
0x36 | istore | Store int into local variable |
0x37 | lstore | Store long into local variable |
0x38 | fstore | Store float into local variable |
0x39 | dstore | Store double into local variable |
0x3a | astore | Store reference into local variable |
0x3b | istore_0 | Store int into local variable |
0x3c | istore_1 | Store int into local variable |
0x3d | istore_2 | Store int into local variable |
0x3e | istore_3 | Store int into local variable |
0x3f | lstore_0 | Store long into local variable |
0x40 | lstore_1 | Store long into local variable |
0x41 | lstore_2 | Store long into local variable |
0x42 | lstore_3 | Store long into local variable |
0x43 | fstore_0 | Store float into local variable |
0x44 | fstore_1 | Store float into local variable |
0x45 | fstore_2 | Store float into local variable |
0x46 | fstore_3 | Store float into local variable |
0x47 | dstore_0 | Store double into local variable |
0x48 | dstore_1 | Store double into local variable |
0x49 | dstore_2 | Store double into local variable |
0x4a | dstore_3 | Store double into local variable |
0x4b | astore_0 | Store reference into local variable |
0x4c | astore_1 | Store reference into local variable |
0x4d | astore_2 | Store reference into local variable |
0x4e | astore_3 | Store reference into local variable |
0x4f | iastore | Store into int array |
0x50 | lastore | Store into long array |
0x51 | fastore | Store into float array |
0x52 | dastore | Store into double array |
0x53 | aastore | Store into reference array |
0x54 | bastore | Store into byte or boolean array |
0x55 | castore | Store into char array |
0x56 | sastore | Store into short array |
0x57 | pop | Pop the top operand stack value |
0x58 | pop2 | Pop the top one or two operand stack values |
0x59 | dup | Duplicate the top operand stack value |
0x5a | dup_x1 | Duplicate the top operand stack value and insert two values down |
0x5b | dup_x2 | Duplicate the top operand stack value and insert two or three values down |
0x5c | dup2 | Duplicate the top one or two operand stack values |
0x5d | dup2_x1 | Duplicate the top one or two operand stack values and insert two or three values down |
0x5e | dup2_x2 | Duplicate the top one or two operand stack values and insert two, three, or four values down |
0x5f | swap | Swap the top two operand stack values |
0x60 | iadd | Add int |
0x61 | ladd | Add long |
0x62 | fadd | Add float |
0x63 | dadd | Add double |
0x64 | isub | Subtract int |
0x65 | lsub | Subtract long |
0x66 | fsub | Subtract float |
0x67 | dsub | Subtract double |
0x68 | imul | Multiply int |
0x69 | lmul | Multiply long |
0x6a | fmul | Multiply float |
0x6b | dmul | Multiply double |
0x6c | idiv | Divide int |
0x6d | ldiv | Divide long |
0x6e | fdiv | Divide float |
0x6f | ddiv | Divide double |
0x70 | irem | Remainder int |
0x71 | lrem | Remainder long |
0x72 | frem | Remainder float |
0x73 | drem | Remainder double |
0x74 | ineg | Negate int |
0x75 | lneg | Negate long |
0x76 | fneg | Negate float |
0x77 | dneg | Negate double |
0x78 | ishl | Shift left int |
0x79 | lshl | Shift left |
0x7a | ishr | Arithmetic shift right int |
0x7b | lshr | Arithmetic shift right long |
0x7c | iushr | Logical shift right int |
0x7d | lushr | Logical shift right long |
0x7e | iand | Boolean AND int |
0x7f | land | Boolean AND long |
0x80 | ior | Boolean OR int |
0x81 | lor | Boolean OR long |
0x82 | ixor | Boolean XOR int |
0x83 | lxor | Boolean XOR long |
0x84 | iinc | Increment local variable by constant |
0x85 | i2l | Convert int to long |
0x86 | i2f | Convert int to float |
0x87 | i2d | Convert int to double |
0x88 | l2i | Convert long to int |
0x89 | l2f | Convert long to float |
0x8a | l2d | Convert long to double |
0x8b | f2i | Convert float to int |
0x8c | f2l | Convert float to long |
0x8d | f2d | Convert float to double |
0x8e | d2i | Convert double to int |
0x8f | d2l | Convert double to long |
0x90 | d2f | Convert double to float |
0x91 | i2b | Convert int to byte |
0x92 | i2c | Convert int to char |
0x93 | i2s | Convert int to short |
0x94 | lcmp | Compare long |
0x95 | fcmpl | Compare float |
0x96 | fcmpg | Compare float |
0x97 | dcmpl | Compare double |
0x98 | dcmpg | Compare double |
0x99 | ifeq | Branch if int comparison with zero succeeds |
0x9a | ifne | Branch if int comparison with zero succeeds |
0x9b | iflt | Branch if int comparison with zero succeeds |
0x9c | ifge | Branch if int comparison with zero succeeds |
0x9d | ifgt | Branch if int comparison with zero succeeds |
0x9e | ifle | Branch if int comparison with zero succeeds |
0x9f | if_icmpeq | Branch if int comparison succeeds |
0xa0 | if_icmpne | Branch if int comparison succeeds |
0xa1 | if_icmplt | Branch if int comparison succeeds |
0xa2 | if_icmpge | Branch if int comparison succeeds |
0xa3 | if_icmpgt | Branch if int comparison succeeds |
0xa4 | if_icmple | Branch if int comparison succeeds |
0xa5 | if_acmpeq | Branch if reference comparison succeeds |
0xa6 | if_acmpne | Branch if reference comparison succeeds |
0xa7 | goto | Branch always |
0xa8 | jsr | Jump subroutine |
0xa9 | ret | Return from subroutine |
0xaa | tableswitch | Access jump table by index and jump |
0xab | lookupswitch | Access jump table by key match and jump |
0xac | ireturn | Return int from method |
0xad | lreturn | Return long from method |
0xae | freturn | Return float from method |
0xaf | dreturn | Return double from method |
0xb0 | areturn | Return reference from method |
0xb1 | return | Return void from method |
0xb2 | getstatic | Get static field from class |
0xb3 | putstatic | Set static field in class |
0xb4 | getfield | Fetch field from object |
0xb5 | putfield | Set field in object |
0xb6 | invokevirtual | Invoke instance method; dispatch based on class |
0xb7 | invokespecial | Invoke instance method; special handling for superclass, private, and instance initialization method invocations |
0xb8 | invokestatic | Invoke a class (static) method |
0xb9 | invokeinterface | Invoke interface method |
0xbb | new | Create new object |
0xbc | newarray | Create new array |
0xbd | anewarray | Create new array of reference |
0xbe | arraylength | Get length of array |
0xbf | athrow | Throw exception or error |
0xc0 | checkcast | Check whether object is of given type |
0xc1 | instanceof | Determine if object is of given type |
0xc2 | monitorenter | Enter monitor for object |
0xc3 | monitorexit | Exit monitor for object |
0xc4 | wide | Extend local variable index by additional bytes |
0xc5 | multianewarray | Create new multidimensional array |
0xc6 | ifnull | Branch if reference is null |
0xc7 | ifnonnull | Branch if reference not null |
0xc8 | goto_w | Branch always (wide index) |
0xc9 | jsr_w | Jump subroutine (wide index) |