読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

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]
[u1] wide (0xC4)
[u1] aload (0x19)
[u2]
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)
[u2] index
arraylength get length of array
[u1] arraylength (0xBE)
astore store object reference in local variable
[u1] astore (0x3A)
[u1]
[u1] wide (0xC4)
[u1] astore (0x3A)
[u2]
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)
[s1]
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)
[u2] index
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]
[u1] wide (0xC4)
[u1] dload (0x18)
[u2]
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]
[u1] wide (0xC4)
[u1] dstore (0x39)
[u2]
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]
[u1] wide (0xC4)
[u1] fload (0x17)
[u2]
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]
[u1] wide (0xC4)
[u1] fstore (0x38)
[u2]
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)
[u2] index
getstatic get value of static field
[u1] getstatic (0xB2)
[u2] index
goto branch to address
[u1] goto (0xA7)
[s2] branchoffset
goto_w branch to address using wide offset
[u1] goto_w (0xC8)
[s4] branchoffset
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)
[s2] branchoffset
if_acmpne jump if two object references are not equal
[u1] if_acmpne (0xA6)
[s2] branchoffset
if_icmpeq jump if two integers are equal
[u1] if_icmpeq (0x9F)
[s2] branchoffset
if_icmpge jump if one integer is greater than or equal toanother
[u1] if_icmpge (0xA2)
[s2] branchoffset
if_icmpgt jump if one integer is greater than another
[u1] if_icmpgt (0xA3)
[s2] branchoffset
if_icmple jump if one integer is less than or equal to another
[u1] if_icmple (0xA4)
[s2] branchoffset
if_icmplt jump if one integer is less than another
[u1] if_icmplt (0xA1)
[s2] branchoffset
if_icmpne jump if two integers are not equal
[u1] if_icmpne (0xA0)
[s2] branchoffset
ifeq jump if zero
[u1] ifeq (0x99)
[s2] branchoffset
ifge jump if greater than or equal to zero
[u1] ifge (0x9C)
[s2] branchoffset
ifgt jump if greater than zero
[u1] ifgt (0x9D)
[s2] branchoffset
ifle jump if less than or equal to zero
[u1] ifle (0x9E)
[s2] branchoffset
iflt jump if less than zero
[u1] iflt (0x9B)
[s2] branchoffset
ifne jump if nonzero
[u1] ifne (0x9A)
[s2] branchoffset
ifnonnull jump if non-null
[u1] ifnonnull (0xC7)
[s2] branchoffset
ifnull jump if null
[u1] ifnull (0xC6)
[s2] branch-offset
iinc increment integer in local variable
[u1] iinc (0x84)
[u1]
[s1]
[u1] wide (0xC4)
[u1] iinc (0x84)
[u2]
[s2]
iload retrieve integer from local variable
[u1] iload (0x15)
[u1]
[u1] wide (0xC4)
[u1] iload (0x15)
[u2]
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)
[u2] index
invokeinterface invoke an interface method
[u1] invokeinterface (0xB9)
[u2] index
[u1]
[u1] 0
invokespecial invoke method belonging to a specific class
[u1] invokespecial (0xB7)
[u2] index
invokestatic invoke a class (static) method
[u1] invokestatic (0xB8)
[u2] index
invokevirtual call an instance method
[u1] invokevirtual (0xB6)
[u2] index
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]
[u1] wide (0xC4)
[u1] istore (0x36)
[u2]
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)
[s2] branchoffset
jsr_w jump to subroutine using wide offset
[u1] jsr_w (0xC9)
[s4] branchoffset
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)
[u1] index
ldc2_w push two-word constant onto stack
[u1] ldc2_w (0x14)
[u2] index
ldc_w push single-word constant onto stack (wide index)
[u1] ldc_w (0x13)
[u2] index
ldiv divide a long integer
[u1] ldiv (0x6D)
lload retrieve long from local variable
[u1] lload (0x16)
[u1]
[u1] wide (0xC4)
[u1] lload (0x16)
[u2]
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)
[-] ...0-3 bytes of padding ...
[s4] default_offset
[s4] n
[s4] key_1
[s4] offset_1
[s4] key_2
[s4] offset_2
[...] ...
[s4] key_n
[s4] offset_n
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]
[u1] wide (0xC4)
[u1] lstore (0x37)
[u2]
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)
[u2] index
[u1]
new create an object
[u1] new (0xBB)
[u2] index
newarray allocate new array for numbers or booleans
[u1] newarray (0xBC)
[u1] array-type (see below)
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)
[u2] index
putstatic set value of static field
[u1] putstatic (0xB3)
[u2] index
ret return from subroutine
[u1] ret (0xA9)
[u1]
[u1] wide (0xC4)
[u1] ret (0xA9)
[u2]
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)
[s2]
swap swap top two stack words
[u1] swap (0x5F)
tableswitch jump according to a table
[u1] tableswitch (0xAA)
[-] ...0-3 bytes of padding ...
[s4] default_offset
[s4]
[s4] + N - 1
[s4] offset_1
[s4] offset_2
[...] ...
[s4] offset_N
wide next instruction uses 16-bit index
[u1] wide (0xC4)
[u1]
[u2]
[u1] wide (0xC4)
[u1]
[u2]
[u2]

マニアックな需要に答えるべく、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 &lt;n&gt;
  :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 &lt;n&gt; and &lt;n&gt;+ 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 &lt;n&gt;
  :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 &lt;n&gt;
  :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 &lt;n&gt;
  :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 &lt;n&gt; and &lt;n&gt; +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 &lt;n&gt; and&lt;n&gt; + 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 &lt;n&gt;
  :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 &lt;n&gt; and &lt;n&gt; +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 &lt;n&gt;
  :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