Javaのopcodeとパラメータの表
Javaのopcodeとそのパラメータの表です。Java Virtual Machine Online Instruction Referenceにて公開されている情報をありがたく再編集させて頂きました。
名前 | 説明 |
---|---|
aaload | retrieve object reference from array[u1] aaload (0x32) |
aastore | store object reference in array[u1] aastore (0x53) |
aconst_null | push null[u1] aconst_null (0x01) |
aload | retrieve object reference from local variable[u1] aload (0x19) [u1] wide (0xC4) |
aload_ |
retrieve object reference from local variable <n>[u1] aload_0 (0x2A) [u1] aload_1 (0x2B) [u1] aload_2 (0x2C) [u1] aload_3 (0x2D) |
anewarray | allocate new array for objects[u1] anewarray (0xBD) |
arraylength | get length of array[u1] arraylength (0xBE) |
astore | store object reference in local variable[u1] astore (0x3A) [u1] wide (0xC4) |
astore_ |
store object reference in local variable <n>[u1] astore_0 (0x4B) [u1] astore_1 (0x4C) [u1] astore_2 (0x4D) [u1] astore_3 (0x4E) |
athrow | throw an exception[u1] athrow (0xBF) |
baload | retrieve byte/boolean from array[u1] baload (0x33) |
bastore | store in byte/boolean array[u1] bastore (0x54) |
bipush | push one-byte signed integer[u1] bipush (0x10) |
breakpoint | reserved opcode[u1] breakpoint (0xCA) |
caload | retrieve character from array[u1] caload (0x34) |
castore | store in character array[u1] castore (0x55) |
checkcast | ensure type of an object or array[u1] checkcast (0xC0) |
d2f | convert double to float[u1] d2f (0x90) |
d2i | convert double to integer[u1] d2i (0x8E) |
d2l | convert double to long integer[u1] d2l (0x8F) |
dadd | add two doubles[u1] dadd (0x63) |
daload | retrieve double-precision float from array[u1] daload (0x31) |
dastore | store in double-precision float array[u1] dastore (0x52) |
dcmpg | compare two doubles (1 on NaN)[u1] dcmpg (0x98) |
dcmpl | compare two doubles (-1 on NaN)[u1] dcmpl (0x97) |
dconst_ |
push the double 0.0 or 1.0[u1] dconst_0 (0x0E) [u1] dconst_1 (0x0F) |
ddiv | divides two doubles[u1] ddiv (0x6F) |
dload | retrieve double from local variable[u1] dload (0x18) [u1] wide (0xC4) |
dload_ |
retrieve double from local variables <n> and <n>+ 1[u1] dload_0 (0x26) [u1] dload_1 (0x27) [u1] dload_2 (0x28) [u1] dload_3 (0x29) |
dmul | multiply two doubles[u1] dmul (0x6B) |
dneg | negate a double[u1] dneg (0x77) |
drem | remainder of two doubles[u1] drem (0x73) |
dreturn | return from method with double result[u1] dreturn (0xAF) |
dstore | store double in local variable[u1] dstore (0x39) [u1] wide (0xC4) |
dstore_ |
store double in local variables <n> and <n> +1[u1] dstore_0 (0x47) [u1] dstore_1 (0x48) [u1] dstore_2 (0x49) [u1] dstore_3 (0x4A) |
dsub | subtract two doubles[u1] dsub (0x67) |
dup | duplicate top single-word item on the stack[u1] dup (0x59) |
dup2 | duplicate top two stack words[u1] dup2 (0x5C) |
dup2_x1 | duplicate two words and insert beneath third word[u1] dup2_x1 (0x5D) |
dup2_x2 | duplicate two words and insert beneath fourth word[u1] dup2_x2 (0x5E) |
dup_x1 | duplicate top stack word and insert beneath secondword[u1] dup_x1 (0x5A) |
dup_x2 | duplicate top stack word and insert beneath third word[u1] dup_x2 (0x5B) |
f2d | convert float to double[u1] f2d (0x8D) |
f2i | convert float to integer[u1] f2i (0x8B) |
f2l | convert float to long integer[u1] f2l (0x8C) |
fadd | add two floats[u1] fadd (0x62) |
faload | retrieve float from array[u1] faload (0x30) |
fastore | store in single-precision float array[u1] fastore (0x51) |
fcmpg | single-precision float comparison (1 on NaN)[u1] fcmpg (0x96) |
fcmpl | single-precision float comparison (-1 on NaN)[u1] fcmpl (0x95) |
fconst_ |
push the single float 0.0, 1.0 or 2.0[u1] fconst_0 (0x0B) [u1] fconst_1 (0x0C) [u1] fconst_2 (0x0D) |
fdiv | divide two floats[u1] fdiv (0x6E) |
fload | retrieve float from local variable[u1] fload (0x17) [u1] wide (0xC4) |
fload_ |
retrieve float from local variable <n>[u1] fload_0 (0x22) [u1] fload_1 (0x23) [u1] fload_2 (0x24) [u1] fload_3 (0x25) |
fmul | multiply two floats[u1] fmul (0x6A) |
fneg | negate a float[u1] fneg (0x76) |
frem | remainder of two floats[u1] frem (0x72) |
freturn | return from method with float result[u1] freturn (0xAE) |
fstore | store float in local variable[u1] fstore (0x38) [u1] wide (0xC4) |
fstore_ |
store float in local variable <n>[u1] fstore_0 (0x43) [u1] fstore_1 (0x44) [u1] fstore_2 (0x45) [u1] fstore_3 (0x46) |
fsub | subtract two floats[u1] fsub (0x66) |
getfield | get value of object field[u1] getfield (0xB4) |
getstatic | get value of static field[u1] getstatic (0xB2) |
goto | branch to address[u1] goto (0xA7) |
goto_w | branch to address using wide offset[u1] goto_w (0xC8) |
i2b | convert integer to byte[u1] i2b (0x91) |
i2c | convert integer to character[u1] i2c (0x92) |
i2d | convert integer to double[u1] i2d (0x87) |
i2f | convert integer to float[u1] i2f (0x86) |
i2l | convert integer to long integer[u1] i2l (0x85) |
i2s | convert integer to short integer[u1] i2s (0x93) |
iadd | add two integers[u1] iadd (0x60) |
iaload | retrieve integer from array[u1] iaload (0x2E) |
iand | integer bitwise and[u1] iand (0x7E) |
iastore | store in integer array[u1] iastore (0x4F) |
iconst_ |
push the integer constant 0, 1, 2, 3, 4 or 5[u1] iconst_0 (0x03) [u1] iconst_1 (0x04) [u1] iconst_2 (0x05) [u1] iconst_3 (0x06) [u1] iconst_4 (0x07) [u1] iconst_5 (0x08) |
iconst_m1 | push the integer constant -1[u1] iconst_m1 (0x02) |
idiv | divide an integer by another integer[u1] idiv (0x6C) |
if_acmpeq | jump if two object references are equal[u1] if_acmpeq (0xA5) |
if_acmpne | jump if two object references are not equal[u1] if_acmpne (0xA6) |
if_icmpeq | jump if two integers are equal[u1] if_icmpeq (0x9F) |
if_icmpge | jump if one integer is greater than or equal toanother[u1] if_icmpge (0xA2) |
if_icmpgt | jump if one integer is greater than another[u1] if_icmpgt (0xA3) |
if_icmple | jump if one integer is less than or equal to another[u1] if_icmple (0xA4) |
if_icmplt | jump if one integer is less than another[u1] if_icmplt (0xA1) |
if_icmpne | jump if two integers are not equal[u1] if_icmpne (0xA0) |
ifeq | jump if zero[u1] ifeq (0x99) |
ifge | jump if greater than or equal to zero[u1] ifge (0x9C) |
ifgt | jump if greater than zero[u1] ifgt (0x9D) |
ifle | jump if less than or equal to zero[u1] ifle (0x9E) |
iflt | jump if less than zero[u1] iflt (0x9B) |
ifne | jump if nonzero[u1] ifne (0x9A) |
ifnonnull | jump if non-null[u1] ifnonnull (0xC7) |
ifnull | jump if null[u1] ifnull (0xC6) |
iinc | increment integer in local variable[u1] iinc (0x84) [u1] wide (0xC4) |
iload | retrieve integer from local variable[u1] iload (0x15) [u1] wide (0xC4) |
iload_ |
push integer from local variable <n>[u1] iload_0 (0x1A) [u1] iload_1 (0x1B) [u1] iload_2 (0x1C) [u1] iload_3 (0x1D) |
impdep1 | reserved opcode[u1] imped1 (0xFE) |
impdep2 | reserved opcode[u1] imped2 (0xFF) |
imul | multiply two integers[u1] imul (0x68) |
ineg | negate an integer[u1] ineg (0x74) |
instanceof | test class of object[u1] instanceof (0xC1) |
invokeinterface | invoke an interface method[u1] invokeinterface (0xB9) |
invokespecial | invoke method belonging to a specific class[u1] invokespecial (0xB7) |
invokestatic | invoke a class (static) method[u1] invokestatic (0xB8) |
invokevirtual | call an instance method[u1] invokevirtual (0xB6) |
ior | integer bitwise or[u1] ior (0x80) |
irem | remainder of two integers[u1] irem (0x70) |
ireturn | return from method with integer result[u1] ireturn (0xAC) |
ishl | integer shift left[u1] ishl (0x78) |
ishr | integer arithmetic shift right[u1] ishr (0x7A) |
istore | store integer in local variable[u1] istore (0x36) [u1] wide (0xC4) |
istore_ |
store integer in local variable <n>[u1] istore_0 (0x3C) [u1] istore_1 (0x3D) [u1] istore_2 (0x3E) [u1] istore_3 (0x3F) |
isub | subtract two integers[u1] isub (0x64) |
iushr | integer logical shift right[u1] iushr (0x7C) |
ixor | integer bitwise exclusive or[u1] ixor (0x82) |
jsr | jump to subroutine[u1] jsr (0xA8) |
jsr_w | jump to subroutine using wide offset[u1] jsr_w (0xC9) |
l2d | convert long to double[u1] l2d (0x8A) |
l2f | convert long to float[u1] l2f (0x89) |
l2i | long to integer conversion[u1] l2i (0x88) |
ladd | add two long integers[u1] ladd (0x61) |
laload | retrieve long integer from array[u1] laload (0x2F) |
land | long integer bitwise and[u1] land (0x7F) |
lastore | store in long integer array[u1] lastore (0x50) |
lcmp | long integer comparison[u1] lcmp (0x94) |
lconst_ |
push the long integer 0 or 1[u1] lconst_0 (0x09) [u1] lconst_1 (0x0A) |
ldc | push single-word constant onto stack[u1] ldc (0x12) |
ldc2_w | push two-word constant onto stack[u1] ldc2_w (0x14) |
ldc_w | push single-word constant onto stack (wide index)[u1] ldc_w (0x13) |
ldiv | divide a long integer[u1] ldiv (0x6D) |
lload | retrieve long from local variable[u1] lload (0x16) [u1] wide (0xC4) |
lload_ |
retrieve long integer from local variables <n> and<n> + 1[u1] lload_0 (0x1E) [u1] lload_1 (0x1F) [u1] lload_2 (0x20) [u1] lload_3 (0x21) |
lmul | multiply two longs[u1] lmul (0x69) |
lneg | negate a long[u1] lneg (0x75) |
lookupswitch | match key in table and jump[u1] lookupswitch (0xAB) |
lor | long integer bitwise or[u1] lor (0x81) |
lrem | modulus of two longs[u1] lrem (0x71) |
lreturn | return from method with long result[u1] lreturn (0xAD) |
lshl | long integer shift left[u1] lshl (0x79) |
lshr | long integer arithmetic shift right[u1] lshr (0x7B) |
lstore | store long integer in local variable[u1] lstore (0x37) [u1] wide (0xC4) |
lstore_ |
store long in local variables <n> and <n> +1[u1] lstore_0 (0x3F) [u1] lstore_1 (0x40) [u1] lstore_2 (0x41) [u1] lstore_3 (0x42) |
lsub | subtract two longs[u1] lsub (0x65) |
lushr | long integer logical shift right[u1] lushr (0x7D) |
lxor | long integer bitwise exclusive or[u1] lxor (0x83) |
monitorenter | enter synchronized region of code[u1] monitorenter (0xC2) |
monitorexit | leave synchronized region of code[u1] monitorexit (0xC3) |
multianewarray | allocate multi-dimensional array[u1] multianewarray (0xC5) |
new | create an object[u1] new (0xBB) |
newarray | allocate new array for numbers or booleans[u1] newarray (0xBC) |
nop | do nothing[u1] nop (0x0) |
pop | discard top word on stack[u1] pop (0x57) |
pop2 | discard top two words on stack[u1] pop2 (0x58) |
putfield | set value of object field[u1] putfield (0xB5) |
putstatic | set value of static field[u1] putstatic (0xB3) |
ret | return from subroutine[u1] ret (0xA9) [u1] wide (0xC4) |
return | return from method[u1] return (0xB1) |
saload | retrieve short from array[u1] saload (0x35) |
sastore | store in short array[u1] sastore (0x56) |
sipush | push two-byte signed integer[u1] sipush (0x11) |
swap | swap top two stack words[u1] swap (0x5F) |
tableswitch | jump according to a table[u1] tableswitch (0xAA) |
wide | next instruction uses 16-bit index[u1] wide (0xC4) [u1] wide (0xC4) |
マニアックな需要に答えるべく、yaml形式のデータも載せておきます。
--- getfield: :description: get value of object field :codes: - - :code: "0xB4" :size: u1 :name: getfield - :code: :size: u2 :name: index baload: :description: retrieve byte/boolean from array :codes: - - :code: "0x33" :size: u1 :name: baload iconst_<n>: :description: push the integer constant 0, 1, 2, 3, 4 or 5 :codes: - - :code: "0x03" :size: u1 :name: iconst_0 - - :code: "0x04" :size: u1 :name: iconst_1 - - :code: "0x05" :size: u1 :name: iconst_2 - - :code: "0x06" :size: u1 :name: iconst_3 - - :code: "0x07" :size: u1 :name: iconst_4 - - :code: "0x08" :size: u1 :name: iconst_5 lrem: :description: modulus of two longs :codes: - - :code: "0x71" :size: u1 :name: lrem ifgt: :description: jump if greater than zero :codes: - - :code: "0x9D" :size: u1 :name: ifgt - :code: :size: s2 :name: branchoffset ldc_w: :description: push single-word constant onto stack (wide index) :codes: - - :code: "0x13" :size: u1 :name: ldc_w - :code: :size: u2 :name: index invokeinterface: :description: invoke an interface method :codes: - - :code: "0xB9" :size: u1 :name: invokeinterface - :code: :size: u2 :name: index - :code: :size: u1 :name: <n> - :code: :size: u1 :name: "0" i2b: :description: convert integer to byte :codes: - - :code: "0x91" :size: u1 :name: i2b frem: :description: remainder of two floats :codes: - - :code: "0x72" :size: u1 :name: frem ireturn: :description: return from method with integer result :codes: - - :code: "0xAC" :size: u1 :name: ireturn ifne: :description: jump if nonzero :codes: - - :code: "0x9A" :size: u1 :name: ifne - :code: :size: s2 :name: branchoffset athrow: :description: throw an exception :codes: - - :code: "0xBF" :size: u1 :name: athrow i2c: :description: convert integer to character :codes: - - :code: "0x92" :size: u1 :name: i2c ifnonnull: :description: jump if non-<tt>null</tt> :codes: - - :code: "0xC7" :size: u1 :name: ifnonnull - :code: :size: s2 :name: branchoffset goto_w: :description: branch to address using wide offset :codes: - - :code: "0xC8" :size: u1 :name: goto_w - :code: :size: s4 :name: branchoffset ldiv: :description: divide a long integer :codes: - - :code: "0x6D" :size: u1 :name: ldiv istore_<n>: :description: store integer in local variable <n> :codes: - - :code: "0x3C" :size: u1 :name: istore_0 - - :code: "0x3D" :size: u1 :name: istore_1 - - :code: "0x3E" :size: u1 :name: istore_2 - - :code: "0x3F" :size: u1 :name: istore_3 i2d: :description: convert integer to double :codes: - - :code: "0x87" :size: u1 :name: i2d fastore: :description: store in single-precision float array :codes: - - :code: "0x51" :size: u1 :name: fastore fneg: :description: negate a float :codes: - - :code: "0x76" :size: u1 :name: fneg saload: :description: retrieve short from array :codes: - - :code: "0x35" :size: u1 :name: saload i2f: :description: convert integer to float :codes: - - :code: "0x86" :size: u1 :name: i2f fcmpg: :description: single-precision float comparison (1 on NaN) :codes: - - :code: "0x96" :size: u1 :name: fcmpg ifnull: :description: jump if <tt>null</tt> :codes: - - :code: "0xC6" :size: u1 :name: ifnull - :code: :size: s2 :name: branch-offset lload: :description: retrieve long from local variable :codes: - - :code: "0x16" :size: u1 :name: lload - :code: :size: u1 :name: <varnum> - - :code: "0xC4" :size: u1 :name: wide - :code: "0x16" :size: u1 :name: lload - :code: :size: u2 :name: <varnum> if_icmpge: :description: jump if one integer is greater than or equal toanother :codes: - - :code: "0xA2" :size: u1 :name: if_icmpge - :code: :size: s2 :name: branchoffset dload_<n>: :description: retrieve double from local variables <n> and <n>+ 1 :codes: - - :code: "0x26" :size: u1 :name: dload_0 - - :code: "0x27" :size: u1 :name: dload_1 - - :code: "0x28" :size: u1 :name: dload_2 - - :code: "0x29" :size: u1 :name: dload_3 ishl: :description: integer shift left :codes: - - :code: "0x78" :size: u1 :name: ishl ladd: :description: add two long integers :codes: - - :code: "0x61" :size: u1 :name: ladd dup: :description: duplicate top single-word item on the stack :codes: - - :code: "0x59" :size: u1 :name: dup swap: :description: swap top two stack words :codes: - - :code: "0x5F" :size: u1 :name: swap new: :description: create an object :codes: - - :code: "0xBB" :size: u1 :name: new - :code: :size: u2 :name: index ldc: :description: push single-word constant onto stack :codes: - - :code: "0x12" :size: u1 :name: ldc - :code: :size: u1 :name: index checkcast: :description: ensure type of an object or array :codes: - - :code: "0xC0" :size: u1 :name: checkcast - :code: :size: u2 :name: index ifeq: :description: jump if zero :codes: - - :code: "0x99" :size: u1 :name: ifeq - :code: :size: s2 :name: branchoffset fload: :description: retrieve float from local variable :codes: - - :code: "0x17" :size: u1 :name: fload - :code: :size: u1 :name: <varnum> - - :code: "0xC4" :size: u1 :name: wide - :code: "0x17" :size: u1 :name: fload - :code: :size: u2 :name: <varnum> fload_<n>: :description: retrieve float from local variable <n> :codes: - - :code: "0x22" :size: u1 :name: fload_0 - - :code: "0x23" :size: u1 :name: fload_1 - - :code: "0x24" :size: u1 :name: fload_2 - - :code: "0x25" :size: u1 :name: fload_3 iconst_m1: :description: push the integer constant -1 :codes: - - :code: "0x02" :size: u1 :name: iconst_m1 fcmpl: :description: single-precision float comparison (-1 on NaN) :codes: - - :code: "0x95" :size: u1 :name: fcmpl ineg: :description: negate an integer :codes: - - :code: "0x74" :size: u1 :name: ineg ret: :description: return from subroutine :codes: - - :code: "0xA9" :size: u1 :name: ret - :code: :size: u1 :name: <varnum> - - :code: "0xC4" :size: u1 :name: wide - :code: "0xA9" :size: u1 :name: ret - :code: :size: u2 :name: <varnum> ldc2_w: :description: push two-word constant onto stack :codes: - - :code: "0x14" :size: u1 :name: ldc2_w - :code: :size: u2 :name: index lconst_<l>: :description: push the long integer 0 or 1 :codes: - - :code: "0x09" :size: u1 :name: lconst_0 - - :code: "0x0A" :size: u1 :name: lconst_1 iand: :description: integer bitwise and :codes: - - :code: "0x7E" :size: u1 :name: iand fmul: :description: multiply two floats :codes: - - :code: "0x6A" :size: u1 :name: fmul monitorexit: :description: leave synchronized region of code :codes: - - :code: "0xC3" :size: u1 :name: monitorexit iload: :description: retrieve integer from local variable :codes: - - :code: "0x15" :size: u1 :name: iload - :code: :size: u1 :name: <varnum> - - :code: "0xC4" :size: u1 :name: wide - :code: "0x15" :size: u1 :name: iload - :code: :size: u2 :name: <varnum> ishr: :description: integer arithmetic shift right :codes: - - :code: "0x7A" :size: u1 :name: ishr i2l: :description: convert integer to long integer :codes: - - :code: "0x85" :size: u1 :name: i2l ifle: :description: jump if less than or equal to zero :codes: - - :code: "0x9E" :size: u1 :name: ifle - :code: :size: s2 :name: branchoffset lastore: :description: store in long integer array :codes: - - :code: "0x50" :size: u1 :name: lastore iload_<n>: :description: push integer from local variable <n> :codes: - - :code: "0x1A" :size: u1 :name: iload_0 - - :code: "0x1B" :size: u1 :name: iload_1 - - :code: "0x1C" :size: u1 :name: iload_2 - - :code: "0x1D" :size: u1 :name: iload_3 aaload: :description: retrieve object reference from array :codes: - - :code: "0x32" :size: u1 :name: aaload if_acmpne: :description: jump if two object references are not equal :codes: - - :code: "0xA6" :size: u1 :name: if_acmpne - :code: :size: s2 :name: branchoffset dneg: :description: negate a double :codes: - - :code: "0x77" :size: u1 :name: dneg if_icmplt: :description: jump if one integer is less than another :codes: - - :code: "0xA1" :size: u1 :name: if_icmplt - :code: :size: s2 :name: branchoffset newarray: :description: allocate new array for numbers or booleans :codes: - - :code: "0xBC" :size: u1 :name: newarray - :code: :size: u1 :name: array-type (see below) bipush: :description: push one-byte signed integer :codes: - - :code: "0x10" :size: u1 :name: bipush - :code: :size: s1 :name: <n> dup2_x1: :description: duplicate two words and insert beneath third word :codes: - - :code: "0x5D" :size: u1 :name: dup2_x1 breakpoint: :description: reserved opcode :codes: - - :code: "0xCA" :size: u1 :name: breakpoint dup2_x2: :description: duplicate two words and insert beneath fourth word :codes: - - :code: "0x5E" :size: u1 :name: dup2_x2 impdep1: :description: reserved opcode :codes: - - :code: "0xFE" :size: u1 :name: imped1 astore_<n>: :description: store object reference in local variable <n> :codes: - - :code: "0x4B" :size: u1 :name: astore_0 - - :code: "0x4C" :size: u1 :name: astore_1 - - :code: "0x4D" :size: u1 :name: astore_2 - - :code: "0x4E" :size: u1 :name: astore_3 dastore: :description: store in double-precision float array :codes: - - :code: "0x52" :size: u1 :name: dastore wide: :description: next instruction uses 16-bit index :codes: - - :code: "0xC4" :size: u1 :name: wide - :code: :size: u1 :name: <opcode> - :code: :size: u2 :name: <varnum> - - :code: "0xC4" :size: u1 :name: wide - :code: :size: u1 :name: <opcode> - :code: :size: u2 :name: <varnum> - :code: :size: u2 :name: <n> isub: :description: subtract two integers :codes: - - :code: "0x64" :size: u1 :name: isub impdep2: :description: reserved opcode :codes: - - :code: "0xFF" :size: u1 :name: imped2 d2f: :description: convert double to float :codes: - - :code: "0x90" :size: u1 :name: d2f putfield: :description: set value of object field :codes: - - :code: "0xB5" :size: u1 :name: putfield - :code: :size: u2 :name: index iushr: :description: integer logical shift right :codes: - - :code: "0x7C" :size: u1 :name: iushr f2d: :description: convert float to double :codes: - - :code: "0x8D" :size: u1 :name: f2d imul: :description: multiply two integers :codes: - - :code: "0x68" :size: u1 :name: imul multianewarray: :description: allocate multi-dimensional array :codes: - - :code: "0xC5" :size: u1 :name: multianewarray - :code: :size: u2 :name: index - :code: :size: u1 :name: <n> lor: :description: long integer bitwise or :codes: - - :code: "0x81" :size: u1 :name: lor jsr_w: :description: jump to subroutine using wide offset :codes: - - :code: "0xC9" :size: u1 :name: jsr_w - :code: :size: s4 :name: branchoffset ixor: :description: integer bitwise exclusive or :codes: - - :code: "0x82" :size: u1 :name: ixor instanceof: :description: test class of object :codes: - - :code: "0xC1" :size: u1 :name: instanceof - :code: :size: u2 :name: index freturn: :description: return from method with float result :codes: - - :code: "0xAE" :size: u1 :name: freturn nop: :description: do nothing :codes: - - :code: "0x0" :size: u1 :name: nop lstore_<n>: :description: store long in local variables <n> and <n> +1 :codes: - - :code: "0x3F" :size: u1 :name: lstore_0 - - :code: "0x40" :size: u1 :name: lstore_1 - - :code: "0x41" :size: u1 :name: lstore_2 - - :code: "0x42" :size: u1 :name: lstore_3 lookupswitch: :description: match key in table and jump :codes: - - :code: "0xAB" :size: u1 :name: lookupswitch - :code: :size: "-" :name: ...0-3 bytes of padding ... - :code: :size: s4 :name: default_offset - :code: :size: s4 :name: n - :code: :size: s4 :name: key_1 - :code: :size: s4 :name: offset_1 - :code: :size: s4 :name: key_2 - :code: :size: s4 :name: offset_2 - :code: :size: ... :name: ... - :code: :size: s4 :name: key_n - :code: :size: s4 :name: offset_n dup2: :description: duplicate top two stack words :codes: - - :code: "0x5C" :size: u1 :name: dup2 invokespecial: :description: invoke method belonging to a specific class :codes: - - :code: "0xB7" :size: u1 :name: invokespecial - :code: :size: u2 :name: index d2i: :description: convert double to integer :codes: - - :code: "0x8E" :size: u1 :name: d2i fdiv: :description: divide two floats :codes: - - :code: "0x6E" :size: u1 :name: fdiv dsub: :description: subtract two doubles :codes: - - :code: "0x67" :size: u1 :name: dsub i2s: :description: convert integer to short integer :codes: - - :code: "0x93" :size: u1 :name: i2s aconst_null: :description: push <tt>null</tt> :codes: - - :code: "0x01" :size: u1 :name: aconst_null daload: :description: retrieve double-precision float from array :codes: - - :code: "0x31" :size: u1 :name: daload lushr: :description: long integer logical shift right :codes: - - :code: "0x7D" :size: u1 :name: lushr if_acmpeq: :description: jump if two object references are equal :codes: - - :code: "0xA5" :size: u1 :name: if_acmpeq - :code: :size: s2 :name: branchoffset tableswitch: :description: jump according to a table :codes: - - :code: "0xAA" :size: u1 :name: tableswitch - :code: :size: "-" :name: ...0-3 bytes of padding ... - :code: :size: s4 :name: default_offset - :code: :size: s4 :name: <low> - :code: :size: s4 :name: <low> + N - 1 - :code: :size: s4 :name: offset_1 - :code: :size: s4 :name: offset_2 - :code: :size: ... :name: ... - :code: :size: s4 :name: offset_N monitorenter: :description: enter synchronized region of code :codes: - - :code: "0xC2" :size: u1 :name: monitorenter lshl: :description: long integer shift left :codes: - - :code: "0x79" :size: u1 :name: lshl dmul: :description: multiply two doubles :codes: - - :code: "0x6B" :size: u1 :name: dmul ifge: :description: jump if greater than or equal to zero :codes: - - :code: "0x9C" :size: u1 :name: ifge - :code: :size: s2 :name: branchoffset castore: :description: store in character array :codes: - - :code: "0x55" :size: u1 :name: castore dstore: :description: store double in local variable :codes: - - :code: "0x39" :size: u1 :name: dstore - :code: :size: u1 :name: <varnum> - - :code: "0xC4" :size: u1 :name: wide - :code: "0x39" :size: u1 :name: dstore - :code: :size: u2 :name: <varnum> sastore: :description: store in short array :codes: - - :code: "0x56" :size: u1 :name: sastore pop: :description: discard top word on stack :codes: - - :code: "0x57" :size: u1 :name: pop laload: :description: retrieve long integer from array :codes: - - :code: "0x2F" :size: u1 :name: laload irem: :description: remainder of two integers :codes: - - :code: "0x70" :size: u1 :name: irem d2l: :description: convert double to long integer :codes: - - :code: "0x8F" :size: u1 :name: d2l f2i: :description: convert float to integer :codes: - - :code: "0x8B" :size: u1 :name: f2i if_icmpgt: :description: jump if one integer is greater than another :codes: - - :code: "0xA3" :size: u1 :name: if_icmpgt - :code: :size: s2 :name: branchoffset iinc: :description: increment integer in local variable :codes: - - :code: "0x84" :size: u1 :name: iinc - :code: :size: u1 :name: <varnum> - :code: :size: s1 :name: <n> - - :code: "0xC4" :size: u1 :name: wide - :code: "0x84" :size: u1 :name: iinc - :code: :size: u2 :name: <varnum> - :code: :size: s2 :name: <n> lload_<n>: :description: retrieve long integer from local variables <n> and<n> + 1 :codes: - - :code: "0x1E" :size: u1 :name: lload_0 - - :code: "0x1F" :size: u1 :name: lload_1 - - :code: "0x20" :size: u1 :name: lload_2 - - :code: "0x21" :size: u1 :name: lload_3 aload: :description: retrieve object reference from local variable :codes: - - :code: "0x19" :size: u1 :name: aload - :code: :size: u1 :name: <varnum> - - :code: "0xC4" :size: u1 :name: wide - :code: "0x19" :size: u1 :name: aload - :code: :size: u2 :name: <varnum> if_icmpne: :description: jump if two integers are not equal :codes: - - :code: "0xA0" :size: u1 :name: if_icmpne - :code: :size: s2 :name: branchoffset fadd: :description: add two floats :codes: - - :code: "0x62" :size: u1 :name: fadd getstatic: :description: get value of static field :codes: - - :code: "0xB2" :size: u1 :name: getstatic - :code: :size: u2 :name: index iaload: :description: retrieve integer from array :codes: - - :code: "0x2E" :size: u1 :name: iaload dload: :description: retrieve double from local variable :codes: - - :code: "0x18" :size: u1 :name: dload - :code: :size: u1 :name: <varnum> - - :code: "0xC4" :size: u1 :name: wide - :code: "0x18" :size: u1 :name: dload - :code: :size: u2 :name: <varnum> fstore_<n>: :description: store float in local variable <n> :codes: - - :code: "0x43" :size: u1 :name: fstore_0 - - :code: "0x44" :size: u1 :name: fstore_1 - - :code: "0x45" :size: u1 :name: fstore_2 - - :code: "0x46" :size: u1 :name: fstore_3 invokevirtual: :description: call an instance method :codes: - - :code: "0xB6" :size: u1 :name: invokevirtual - :code: :size: u2 :name: index astore: :description: store object reference in local variable :codes: - - :code: "0x3A" :size: u1 :name: astore - :code: :size: u1 :name: <varnum> - - :code: "0xC4" :size: u1 :name: wide - :code: "0x3A" :size: u1 :name: astore - :code: :size: u2 :name: <varnum> lneg: :description: negate a long :codes: - - :code: "0x75" :size: u1 :name: lneg drem: :description: remainder of two doubles :codes: - - :code: "0x73" :size: u1 :name: drem idiv: :description: divide an integer by another integer :codes: - - :code: "0x6C" :size: u1 :name: idiv faload: :description: retrieve float from array :codes: - - :code: "0x30" :size: u1 :name: faload land: :description: long integer bitwise and :codes: - - :code: "0x7F" :size: u1 :name: land l2d: :description: convert long to double :codes: - - :code: "0x8A" :size: u1 :name: l2d invokestatic: :description: invoke a class (static) method :codes: - - :code: "0xB8" :size: u1 :name: invokestatic - :code: :size: u2 :name: index dup_x1: :description: duplicate top stack word and insert beneath secondword :codes: - - :code: "0x5A" :size: u1 :name: dup_x1 anewarray: :description: allocate new array for objects :codes: - - :code: "0xBD" :size: u1 :name: anewarray - :code: :size: u2 :name: index f2l: :description: convert float to long integer :codes: - - :code: "0x8C" :size: u1 :name: f2l sipush: :description: push two-byte signed integer :codes: - - :code: "0x11" :size: u1 :name: sipush - :code: :size: s2 :name: <n> lshr: :description: long integer arithmetic shift right :codes: - - :code: "0x7B" :size: u1 :name: lshr lreturn: :description: return from method with long result :codes: - - :code: "0xAD" :size: u1 :name: lreturn istore: :description: store integer in local variable :codes: - - :code: "0x36" :size: u1 :name: istore - :code: :size: u1 :name: <varnum> - - :code: "0xC4" :size: u1 :name: wide - :code: "0x36" :size: u1 :name: istore - :code: :size: u2 :name: <varnum> dup_x2: :description: duplicate top stack word and insert beneath third word :codes: - - :code: "0x5B" :size: u1 :name: dup_x2 caload: :description: retrieve character from array :codes: - - :code: "0x34" :size: u1 :name: caload fconst_<f>: :description: push the single float 0.0, 1.0 or 2.0 :codes: - - :code: "0x0B" :size: u1 :name: fconst_0 - - :code: "0x0C" :size: u1 :name: fconst_1 - - :code: "0x0D" :size: u1 :name: fconst_2 lcmp: :description: long integer comparison :codes: - - :code: "0x94" :size: u1 :name: lcmp iflt: :description: jump if less than zero :codes: - - :code: "0x9B" :size: u1 :name: iflt - :code: :size: s2 :name: branchoffset ddiv: :description: divides two doubles :codes: - - :code: "0x6F" :size: u1 :name: ddiv l2f: :description: convert long to float :codes: - - :code: "0x89" :size: u1 :name: l2f fstore: :description: store float in local variable :codes: - - :code: "0x38" :size: u1 :name: fstore - :code: :size: u1 :name: <varnum> - - :code: "0xC4" :size: u1 :name: wide - :code: "0x38" :size: u1 :name: fstore - :code: :size: u2 :name: <varnum> goto: :description: branch to address :codes: - - :code: "0xA7" :size: u1 :name: goto - :code: :size: s2 :name: branchoffset dcmpg: :description: compare two doubles (1 on NaN) :codes: - - :code: "0x98" :size: u1 :name: dcmpg iadd: :description: add two integers :codes: - - :code: "0x60" :size: u1 :name: iadd jsr: :description: jump to subroutine :codes: - - :code: "0xA8" :size: u1 :name: jsr - :code: :size: s2 :name: branchoffset dconst_<d>: :description: push the double 0.0 or 1.0 :codes: - - :code: "0x0E" :size: u1 :name: dconst_0 - - :code: "0x0F" :size: u1 :name: dconst_1 arraylength: :description: get length of array :codes: - - :code: "0xBE" :size: u1 :name: arraylength if_icmpeq: :description: jump if two integers are equal :codes: - - :code: "0x9F" :size: u1 :name: if_icmpeq - :code: :size: s2 :name: branchoffset iastore: :description: store in integer array :codes: - - :code: "0x4F" :size: u1 :name: iastore lsub: :description: subtract two longs :codes: - - :code: "0x65" :size: u1 :name: lsub dstore_<n>: :description: store double in local variables <n> and <n> +1 :codes: - - :code: "0x47" :size: u1 :name: dstore_0 - - :code: "0x48" :size: u1 :name: dstore_1 - - :code: "0x49" :size: u1 :name: dstore_2 - - :code: "0x4A" :size: u1 :name: dstore_3 dreturn: :description: return from method with double result :codes: - - :code: "0xAF" :size: u1 :name: dreturn return: :description: return from method :codes: - - :code: "0xB1" :size: u1 :name: return pop2: :description: discard top two words on stack :codes: - - :code: "0x58" :size: u1 :name: pop2 lmul: :description: multiply two longs :codes: - - :code: "0x69" :size: u1 :name: lmul l2i: :description: long to integer conversion :codes: - - :code: "0x88" :size: u1 :name: l2i dadd: :description: add two doubles :codes: - - :code: "0x63" :size: u1 :name: dadd ior: :description: integer bitwise or :codes: - - :code: "0x80" :size: u1 :name: ior aastore: :description: store object reference in array :codes: - - :code: "0x53" :size: u1 :name: aastore fsub: :description: subtract two floats :codes: - - :code: "0x66" :size: u1 :name: fsub lxor: :description: long integer bitwise exclusive or :codes: - - :code: "0x83" :size: u1 :name: lxor lstore: :description: store long integer in local variable :codes: - - :code: "0x37" :size: u1 :name: lstore - :code: :size: u1 :name: <varnum> - - :code: "0xC4" :size: u1 :name: wide - :code: "0x37" :size: u1 :name: lstore - :code: :size: u2 :name: <varnum> aload_<n>: :description: retrieve object reference from local variable <n> :codes: - - :code: "0x2A" :size: u1 :name: aload_0 - - :code: "0x2B" :size: u1 :name: aload_1 - - :code: "0x2C" :size: u1 :name: aload_2 - - :code: "0x2D" :size: u1 :name: aload_3 putstatic: :description: set value of static field :codes: - - :code: "0xB3" :size: u1 :name: putstatic - :code: :size: u2 :name: index dcmpl: :description: compare two doubles (-1 on NaN) :codes: - - :code: "0x97" :size: u1 :name: dcmpl bastore: :description: store in byte/boolean array :codes: - - :code: "0x54" :size: u1 :name: bastore if_icmple: :description: jump if one integer is less than or equal to another :codes: - - :code: "0xA4" :size: u1 :name: if_icmple - :code: :size: s2 :name: branchoffset