opcode | bytes | name | params | description | notes |
0x00 | 1 | nop | none | no-operation | implemented |
0x01 | 1 | aconst_null | none | load null objref | implemented |
0x02 | 1 | iconst_m1 | none | load integer value -1 | implemented |
0x03 | 1 | iconst_0 | none | load integer value 0 | implemented |
0x04 | 1 | iconst_1 | none | load integer value 1 | implemented |
0x05 | 1 | iconst_2 | none | load integer value 2 | implemented |
0x06 | 1 | iconst_3 | none | load integer value 3 | implemented |
0x07 | 1 | iconst_4 | none | load integer value 4 | implemented |
0x08 | 1 | iconst_5 | none | load integer value 5 | implemented |
0x09 | 1 | lconst_0 | none | load long value 0 | implemented |
0x0a | 1 | lconst_1 | none | load long value 1 | implemented |
0x0b | 1 | fconst_0 | none | load float value 0 | implemented |
0x0c | 1 | fconst_1 | none | load float value 1 | implemented |
0x0d | 1 | fconst_2 | none | load float value 2 | implemented |
0x0e | 1 | dconst_0 | none | load double value 0 | implemented |
0x0f | 1 | dconst_1 | none | load double value 1 | implemented |
0x10 | 2 | bipush | B | load byte as integer | implemented |
0x11 | 3 | sipush | S | load short as integer | implemented |
0x12 | 2 | ldc | i | load constant | implemented |
0x13 | 3 | ldc_w | l | load constant (wide) | implemented |
0x14 | 3 | ldc2_w | l | load 2 word constant | implemented |
0x15 | 2 | iload | B | load integer variable n | implemented |
0x16 | 2 | lload | B | load long variable n | implemented |
0x17 | 2 | fload | B | load float variable n | implemented |
0x18 | 2 | dload | B | load double variable n | implemented |
0x19 | 2 | aload | B | load objref variable n | implemented |
0x1a | 1 | iload_0 | none | load integer variable #0 | implemented |
0x1b | 1 | iload_1 | none | load integer variable #1 | implemented |
0x1c | 1 | iload_2 | none | load integer variable #2 | implemented |
0x1d | 1 | iload_3 | none | load integer variable #3 | implemented |
0x1e | 1 | lload_0 | none | load long variable #0 | implemented |
0x1f | 1 | lload_1 | none | load long variable #1 | implemented |
0x20 | 1 | lload_2 | none | load long variable #2 | implemented |
0x21 | 1 | lload_3 | none | load long variable #3 | implemented |
0x22 | 1 | fload_0 | none | load float variable #0 | implemented |
0x23 | 1 | fload_1 | none | load float variable #1 | implemented |
0x24 | 1 | fload_2 | none | load float variable #2 | implemented |
0x25 | 1 | fload_3 | none | load float variable #3 | implemented |
0x26 | 1 | dload_0 | none | load double variable #0 | implemented |
0x27 | 1 | dload_1 | none | load double variable #1 | implemented |
0x28 | 1 | dload_2 | none | load double variable #2 | implemented |
0x29 | 1 | dload_3 | none | load double variable #3 | implemented |
0x2a | 1 | aload_0 | none | load objref variable #0 | implemented |
0x2b | 1 | aload_1 | none | load objref variable #1 | implemented |
0x2c | 1 | aload_2 | none | load objref variable #2 | implemented |
0x2d | 1 | aload_3 | none | load objref variable #3 | implemented |
0x2e | 1 | iaload | none | load integer from array | implemented |
0x2f | 1 | laload | none | load long from array | implemented |
0x30 | 1 | faload | none | load integer from array | impl in v1.04a |
0x31 | 1 | daload | none | load float from array | impl in v1.04 |
0x32 | 1 | aaload | none | load objref from array | implemented |
0x33 | 1 | baload | none | load byte from array | implemented |
0x34 | 1 | caload | none | load char from array | implemented |
0x35 | 1 | saload | none | load short from array | impl in v1.04a |
0x36 | 2 | istore | B | store integer in variable n | implemented |
0x37 | 2 | lstore | B | store long in variable n | implemented |
0x38 | 2 | fstore | B | store float in variable n | implemented |
0x39 | 2 | dstore | B | store double in variable n | implemented |
0x3a | 2 | astore | B | store objref in variable n | implemented |
0x3b | 1 | istore_0 | none | store integer in variable #0 | implemented |
0x3c | 1 | istore_1 | none | store integer in variable #1 | implemented |
0x3d | 1 | istore_2 | none | store integer in variable #2 | implemented |
0x3e | 1 | istore_3 | none | store integer in variable #3 | implemented |
0x3f | 1 | lstore_0 | none | store long in variable #0 | implemented |
0x40 | 1 | lstore_1 | none | store long in variable #1 | implemented |
0x41 | 1 | lstore_2 | none | store long in variable #2 | implemented |
0x42 | 1 | lstore_3 | none | store long in variable #3 | implemented |
0x43 | 1 | fstore_0 | none | store float in variable #0 | implemented |
0x44 | 1 | fstore_1 | none | store float in variable #1 | implemented |
0x45 | 1 | fstore_2 | none | store float in variable #2 | implemented |
0x46 | 1 | fstore_3 | none | store float in variable #3 | implemented |
0x47 | 1 | dstore_0 | none | store double in variable #0 | implemented |
0x48 | 1 | dstore_1 | none | store double in variable #1 | implemented |
0x49 | 1 | dstore_2 | none | store double in variable #2 | implemented |
0x4a | 1 | dstore_3 | none | store double in variable #3 | implemented |
0x4b | 1 | astore_0 | none | store objref in variable #0 | implemented |
0x4c | 1 | astore_1 | none | store objref in variable #1 | implemented |
0x4d | 1 | astore_2 | none | store objref in variable #2 | implemented |
0x4e | 1 | astore_3 | none | store objref in variable #3 | implemented |
0x4f | 1 | iastore | none | store integer in array | implemented |
0x50 | 1 | lastore | none | store long in array | implemented |
0x51 | 1 | fastore | none | store float in array | impl in v1.04a |
0x52 | 1 | dastore | none | store double in array | impl in v1.04a |
0x53 | 1 | aastore | none | store objref in array | implemented |
0x54 | 1 | bastore | none | store byte in array | implemented |
0x55 | 1 | castore | none | store char in array | implemented |
0x56 | 1 | sastore | none | store short in array | impl in v1.04a |
0x57 | 1 | pop | none | pop top word of stack | implemented |
0x58 | 1 | pop2 | none | pop top two words of stack | implemented |
0x59 | 1 | dup | none | duplicate top word of stack | implemented |
0x5a | 1 | dup_x1 | none | duplicate and put two down | implemented |
0x5b | 1 | dup_x2 | none | duplicate and put three down | implemented |
0x5c | 1 | dup2 | none | duplicate top two words | implemented |
0x5d | 1 | dup2_x1 | none | duplicate two and put three down | implemented |
0x5e | 1 | dup2_x2 | none | duplicate two and put four down | impl in v1.05a |
0x5f | 1 | swap | none | swap top two words of stack | impl in v1.05a |
0x60 | 1 | iadd | none | add two integers | implemented |
0x61 | 1 | ladd | none | add two longs | implemented |
0x62 | 1 | fadd | none | add two floats | implemented |
0x63 | 1 | dadd | none | add two doubles | implemented |
0x64 | 1 | isub | none | subtract two integers | implemented |
0x65 | 1 | lsub | none | subtract two longs | implemented |
0x66 | 1 | fsub | none | subtract two floats | implemented |
0x67 | 1 | dsub | none | subtract two doubles | implemented |
0x68 | 1 | imul | none | multiply two integers | implemented |
0x69 | 1 | lmul | none | multiply two longs | implemented |
0x6a | 1 | fmul | none | multiply two floats | implemented |
0x6b | 1 | dmul | none | multiply two doubles | implemented |
0x6c | 1 | idiv | none | divide two integers | implemented |
0x6d | 1 | ldiv | none | divide two longs | implemented |
0x6e | 1 | fdiv | none | divide two floats | implemented |
0x6f | 1 | ddiv | none | divide two doubles | implemented |
0x70 | 1 | irem | none | remainder from dividing two integers | implemented |
0x71 | 1 | lrem | none | remainder from dividing two longs | implemented |
0x72 | 1 | frem | none | remainder from dividing two floats | impl in v1.04a |
0x73 | 1 | drem | none | remainder from dividing two doubles | impl in v1.04a |
0x74 | 1 | ineg | none | negate an integer | implemented |
0x75 | 1 | lneg | none | negate a long | implemented |
0x76 | 1 | fneg | none | negate a float | implemented |
0x77 | 1 | dneg | none | negate a double | impl in v1.04a |
0x78 | 1 | ishl | none | shift left integer | implemented |
0x79 | 1 | lshl | none | shift left long | implemented |
0x7a | 1 | ishr | none | shift right integer | implemented |
0x7b | 1 | lshr | none | shift right long | implemented |
0x7c | 1 | iushr | none | shift right unsigned integer | implemented |
0x7d | 1 | lushr | none | shift right unsigned long | implemented |
0x7e | 1 | iand | none | bitwise and two integers | implemented |
0x7f | 1 | land | none | bitwise and two longs | implemented |
0x80 | 1 | ior | none | bitwise or two integers | implemented |
0x81 | 1 | lor | none | bitwise or two longs | implemented |
0x82 | 1 | ixor | none | bitwise exclusive or two integers | implemented |
0x83 | 1 | lxor | none | bitwise exclusive or two longs | implemented |
0x84 | 3 | iinc | BB | increment integer variable by n | implemented |
0x85 | 1 | i2l | none | convert integer to long | implemented |
0x86 | 1 | i2f | none | convert integer to float | implemented |
0x87 | 1 | i2d | none | convert integer to double | implemented |
0x88 | 1 | l2i | none | convert long to integer | implemented |
0x89 | 1 | l2f | none | convert long to float | impl in v1.04a |
0x8a | 1 | l2d | none | convert long to double | implemented |
0x8b | 1 | f2i | none | convert float to integer | implemented |
0x8c | 1 | f2l | none | convert float to long | impl in v1.04a |
0x8d | 1 | f2d | none | convert float to double | implemented |
0x8e | 1 | d2i | none | convert double to integer | implemented |
0x8f | 1 | d2l | none | convert double to long | implemented |
0x90 | 1 | d2f | none | convert double to float | impl in v1.04a |
0x91 | 1 | i2b | none | convert integer to byte | implemented |
0x92 | 1 | i2c | none | convert integer to char | implemented |
0x93 | 1 | i2s | none | convert integer to short | implemented |
0x94 | 1 | lcmp | none | compare two longs | implemented |
0x95 | 1 | fcmpl | none | compare two floats (NaN gives less) | implemented |
0x96 | 1 | fcmpg | none | compare two floats (NaN gives greater) | impl in v1.04a |
0x97 | 1 | dcmpl | none | compare two double (NaN gives less) | implemented |
0x98 | 1 | dcmpg | none | compare two doubles (NaN gives greater) | implemented |
0x99 | 3 | ifeq | S | branch if equal | implemented |
0x9a | 3 | ifne | S | branch if not equal | implemented |
0x9b | 3 | iflt | S | branch if less than | implemented |
0x9c | 3 | ifge | S | branch if greater equal | implemented |
0x9d | 3 | ifgt | S | branch if greater than | implemented |
0x9e | 3 | ifle | S | branch if less equal | implemented |
0x9f | 3 | if_icmpeq | S | branch if int equal | implemented |
0xa0 | 3 | if_icmpne | S | branch if int not equal | implemented |
0xa1 | 3 | if_icmplt | S | branch if int less than | implemented |
0xa2 | 3 | if_icmpge | S | branch if int greater equal | implemented |
0xa3 | 3 | if_icmpgt | S | branch if int greater than | implemented |
0xa4 | 3 | if_icmple | S | branch if int less equal | implemented |
0xa5 | 3 | if_acmpeq | S | branch if objref equal | implemented |
0xa6 | 3 | if_acmpne | S | branch if objref equal | implemented |
0xa7 | 3 | goto | S | jump to | implemented |
0xa8 | 3 | jsr | S | jump to pushing ret | implemented |
0xa9 | 2 | ret | B | jump to popped | implemented |
0xaa | n | tableswitch | none | switch using table | implemented |
0xab | n | lookupswitch | none | switch using compares | implemented |
0xac | 1 | ireturn | none | return integer from method | implemented |
0xad | 1 | lreturn | none | return long from method | implemented |
0xae | 1 | freturn | none | return float from method | implemented |
0xaf | 1 | dreturn | none | return double from method | impl in v1.04a |
0xb0 | 1 | areturn | none | return objref from method | implemented |
0xb1 | 1 | return | none | return from method | implemented |
0xb2 | 3 | getstatic | f | get value from static field | implemented |
0xb3 | 3 | putstatic | f | put value into static field | implemented |
0xb4 | 3 | getfield | f | get value from field | implemented |
0xb5 | 3 | putfield | f | put value into field | implemented |
0xb6 | 3 | invokevirtual | m | invoke ordinary virtual method | implemented |
0xb7 | 3 | invokespecial | m | invoke special method | implemented |
0xb8 | 3 | invokestatic | m | invoke static method | implemented |
0xb9 | 5 | invokeinterface | SB | invoke method thru interface | implemented |
0xba | | UNDEFINED |
0xbb | 3 | new | c | new object instance | implemented |
0xbc | 2 | newarray | t | new array of given basic type | implemented |
0xbd | 3 | anewarray | c | new array of objrefs | implemented |
0xbe | 1 | arraylength | none | get length of array | implemented |
0xbf | 1 | athrow | none | raise an exception | implemented |
0xc0 | 3 | checkcast | c | check a cast for validity | implemented |
0xc1 | 3 | instanceof | c | check if an instance of a class | implemented |
0xc2 | 1 | monitorenter | none | lock an object | dummied |
0xc3 | 1 | monitorexit | none | unlock an object | dummied |
0xc4 | 1 | wide | none | | implemented |
0xc5 | 4 | multianewarray | cB | | implemented |
0xc6 | 3 | ifnull | S | branch if an objref is null | implemented |
0xc7 | 3 | ifnonnull | S | branch if an objref is nonnull | implemented |
0xc8 | 5 | goto_w | I | | impl in v1.05a |
0xc9 | 5 | jsr_w | I | | impl in v1.05a |
0xca-0xff | | UNDEFINED |