Beruflich Dokumente
Kultur Dokumente
tables
Compact
This file is free to modify and re-use, with no restrictions, even commercially.
it's an OpenOffice document.
1 grab its content via: svn export https://corkami.googlecode.com/svn/trunk/oOo/opcodes_tables_compact
2 rezip with subdirectories as opcodes_tables_compact.ods
opcodes tables are available as compact and complete form.
Feb 21, 2012
Ange Albertini 2012 http://corkami.com
x0
0x
1x
2x
3x
4x
5x
6x
7x
8x
9x
Ax
Bx
Cx
x1
x2
x3
aconst_
null
*m1
*0
*ipush
ldc*
b* 1
s*
* 1 *_w 2
2
...lload_*
*2
*3
*0
*1
...*aload
f*
d*
a*
b*
...lstore_*
*1
*2
*3
*0
...*astore
l*
f*
d*
a*
*add
i*
l*
f*
d*
*rem
i*
l*
f*
d*
*or
*xor
i*
l*
i*
l*
...d2*
i2*
*f
*b
*c
*s
...if_icmp*
*ne
*lt
*ge
*gt
...*return
*static 2
a*
*
get* put*
monitor*
check instance
cast 2
of
2 *enter *exit
nop
x4
x5
*1
iconst_*
*2
*3
*2_w 2
fload_*
*2
c*
x6
i*
l*
*3
*0
s*
fstore_*
*2
*1
b*
i*
*3
c*
s*
*sub
i*
l*
f*
*neg
i*
iinc
l*
f*
i2*
*f
*l
fcmp*
lcmp
*l
*g
if_acmp*
*eq
*ne
*le
*field
get*
*put
multi
(pref.)
wide anewarray
Fx
*virtual
3
*null
x7
x8
x9
xA
xB
xC xD
xE
fconst_*
dconst_*
*0
*1
*2
*0
*1
iload_*
lload_*...
1
d*
a*
*0
*1
*2
*3
*0
*1
dload_*
aload_*
*aload...
*1
*2
*3
*0
*1
*2
*3
i*
l*
*store
istore_*
lstore_*...
1
l*
f*
d*
a*
*0
*1
*2
*3
*0
dstore_*
astore_*
*astore...
*0
*1
*2
*3
*0
*1
*2
*3
i*
pop*
dup*
swap
*
*2
*
*_x1
*_x2
*2 *2_x1 *2_x2
*mul
*div
d*
i*
l*
f*
d*
i*
l*
f*
d*
*shl
*shr
*ushr
*and
d*
i*
l*
i*
l*
i*
l*
i*
l*
l2*
f2*
d2*...
*d
*i
*f
*d
*i
*l
*d
*i
*l
dcmp*
if*
2 if_icmp*..
*l
*g
*eq
*ne
*lt
*ge
*gt
*le
*eq
2
*switch
*return...
v
2
goto
jsr
ret
table* lookup* i*
l*
f*
d*
2
2
1
invoke*
*newarray array
xxunusedxxx1
new
athrow
*static 2 *interface 4
* 1 a* 2 length
2 *special 2
2
if*
break
2
goto_w
jsr_w
point
*nonnull
4
4
*4
*load
f*
*5
lconst_*
*0
*1
*1
misc
arithmetic
flow
constants
logical
method
immediates
locals
conversion
object
comparison
system
stack
conditional
undefined
xF
impdep*
*2
JVM (Java)
x0
x1
0x
nop
break
1x
starg.s
2x
3x
4x
x2
x3
x4
x5
x6
x7
x8
x9
*0
ldarg.*
*1
*2
*3
*0
ldloc.*
*1
*2
*3
*m1
*0
ldloc
*.s
*a.s
ldc.*
*i8
*r4
*i4
...b*.s
gt
le
lt
b*.un
gt
5x
*ref
*i1
6x
or
xor
shl
7x
cpobj
ldobj
ldstr
8x
stsfld
stobj
Ax
*i1
...stelem.*
*r4
*i2
*r8
*ref
Dx
ldtoken
Ex
conv.u
FE
0x
arglist
FE
1x
misc
system
*u2
*eq
end
filter
ge
le
lt
b*.un.s
gt
switch
stind.*
*i4
*i8
shr
neg
*.un
cast
newobj
isinst
class
conv.ovf.i*.un
4
2
8
ldelem.*
*u2
*i4
*u4
unbox.
ldelem stelem
any
*
Bx
Cx
ne
*i2
*u1
dup
*r8
ne
...ldind.*
*ref
9x
ge
stlock.s ldnull
ref
anyval
conv.*
*u1
*i1
ck
finite
*i
c*
*gt
*gt.un
un
volatile.
aligned.
*u1
*i2
conv.ovf.*
*i
*u
*1
*2
pop
jmp
le
lt
*i1
*u1
*i2
*r4
*r8
not
*i1
*i2
conv.ovf.u*.un
4
2
*i8
*i
conv.ovf.*
*u2
*i4
mkref
any
add.ovf*
*
*.un
*i
br
*false
*u2
add
conv.r.un
1
*3
call*
sub
tail.
*lt.un
init
obj
immediates
stack
arithmetic
fields
logical
array
args
method
conversion
references
locals
conditional
object
flow
constants
indirects
exception
comparison
ret
*1
xC
*5
*i4
*u4
*u4
*i8
*u8
mul.ovf*
*
*.un
init
blk
*3
*.s
ldarg*
*a.s
*i8
*i
sub.ovf*
*
*.un
ldarg*
*a
re
no.
throw
*
xF
starg
*8
eq
*le
*i
*r4
div*
mul
*ref
xE
*6
*7
br*
*false.s *true.s
b*
*ge
*gt
*.s
*eq
*r8
xD
stloc.*
*2
*true
*r4
virt
constrained. cpblk
*0
ldc.i4.*
*4
xB
rem*
*
*.un
conv.*
*i4
*i8
*r4
*r8
ldfld*
unbox throw
*
*a
conv.ovf.*.un
box
8
i
u
ld*ftn
*lt
xA
*.un
*u4
*u8
*i1
*i2
end
finally
*a
ref
sizeof
anytype
and
callvirt
ldlen
ldelema
*i4
stelem.*...
*i8
leave*
ldloc*
*
*lt
ldind.*
*r8
ldsfld*
*
*a
stfld
newarr
*s
b*.s...
ge
*.s
stloc
stind.i
localloc
read
only.
prefix
undefined
x0
0x
1x
2x
3x
nop
x1
x2
move*
/from16
return*
-wide
-object
instance
array
of
length
cmp*-double cmpg
long
4x
5x
6x
7x
8x
9x
...aput
-char
-short
*
...invoke-*
-direct
...neg*
-double
-wide
-static
long
add
...*-long
and
sub
sub
Cx
add
...*-long/2addr
and
Dx
add
Ex
shl
Fx
invokedirect-empty
Ax
Bx
or
or
sub
*-int/lit8
shr
x3
x4
x5
x6
x7
x8
x9
move-wide*
move-object*
/16
*
/from16
/16
*
/from16
/16
const
const-wide
/4
/16
*
/high16
/16
/32
*
/high16
new*
filled-new-array
fillgoto
throw
*instance *array
*
-range array-data
*
/16
if-*
eq
ne
lt
ge
gt
le
eq
ne
aget
*
-wide
-object
-bool
-byte
-char
iget
*
-wide -object
-bool
-byte
-char
-short
*
sget
-object -bool -byte
-char
-short
*
-wide
-object
invoke-*/range
-interface
virtual
super
-direct -static -interface
int-to-*
float-to
long-to-*
float
double int
float
double
int
long
double
*-int
mul
div
and
or
xor
shl
shr
rem
*-float
xor
shl
shr
ushr
sub
mul
div
add
*-int/2addr
mul
div
and
or
xor
shl
shr
rem
*-float/2addr
xor
shl
shr
ushr
sub
mul
div
add
*-int/lit16
mul
div
and
or
xor
add
sub
rem
ushr
iget-*quick
-wide -object
misc
object
conversion
moves
flow
arithmetic
method
conditional
literals
transfer
system
logical
undefined
iput-*quick
-wide
-object
virtual
xA
xB
xC
xD
xE
xF
move-result*
movereturn*
*
-wide
-object exception
-void
*
const-string
constmonitor
check
*
-jumbo
enter
exit
class
cast
*-switch
cmp*-float
cmp*-double
/32
packed* sparse*
l
g
l
if-*z
lt
ge
gt
le
aput...
-short
*
-wide
-object
-bool
-byte
iput
-wide
-object
-bool
-byte
-char
-short
sput
invoke-*...
-bool
-byte
-char
-short
virtual
super
neg*
not*
neg*
not*
neg*...
-int
-int
-long
-long
-float
double-to-*
int-to-*
int
long
float
byte
char
short
*-long...
ushr
add
sub
mul
div
rem
*-double
sub
mul
div
rem
add
rem
*-long/2addr...
ushr
add
sub
mul
div
rem
*-double/2addr
sub
mul
div
rem
add
rem
*-int/lit8
mul
div
and
or
xor
rem
execute
inline
invoke-*-quick
virtual/range super super/range
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
OR
PUSH TWO
CS BYTE
0x
SBB
PUSH DS
POP DS
1x
0x
ADD
1x
ADC
2x
AND
ES:
DAA
SUB
CS:
DAS
2x
3x
XOR
SS:
AAA
CMP
DS:
AAS
3x
PUSH/POP
ES/SS
4x
INC / DEC
4x
5x
PUSH /POP
5x
6x
PUSHA
POPA
BOUND
ARPL
FS: GS:
oper. addr
size override
7x
ADD/ADC/AND/XOR
OR/SBB/SUB/CMP
9x
NOP
Ax
TEST
XCHG
MOV EAX
MOVS
CMPS
Bx
RETN LES / LDS
shifts
rotations
LOOPs
LOCK
Fx
TEST
PUSHF / LAHF
STOS / LODS
SCAS
exclusive
access
IceBP
MOV
ENTER
LEAVE
REPcc: HLT
IN / OUT
CMC
TEST/NOT/NEG
[i]MUL/[i]DIV
CALL / JMP
Clear/Set Flags
misc
arithmetic
flow
memory/reg
logical
group
flags
prefix
obsolete
comparison
system
stack
conditional
hidden
INTO IRET
pre
fetch
HINT NOP
MOV CR/DR
SYS
ENTER
RDTSC
CMOVcc
6x
8x
Jcc
9x
SETcc
FS CPUID
Ax PUSH
POP FS
BT
Cx
XADD
PUSH GS
POP GS
SHLD
BTS SHRD
*FENCE
IMUL
BT
POP
BTC BSF / BSR MOVZX
MOVZX CNT UD
Btx
CMP
XCHG
BSWAP
Dx
{FPU}
prefetch
nta
MOV
Dx
Ex
MOV
CBW/CWD
CALL WAIT
CWDE/CDQ
XCHG
UD2
7x
Jcc
8x
Cx
INS / OUTS
SLDT SGDT
STR SIDT
VERx SMSW
IN / OUT
INC/DEC
INC CALL/JMP
DEC PUSH
Ex
Fx
x86
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
TWO
BYTE
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x
ADD
OR
0x
1x
ADC
SBB
2x
AND
ES:
SUB
CS:
2x
3x
XOR
SS:
CMP
DS:
3x
REX:
4x
5x
PUSH /POP
5x
MOVSXD
FS: GS:
oper. addr
size override
7x
ADD/ADC/AND/XOR
OR/SBB/SUB/CMP
9x
NOP
Ax
TEST
MOV EAX
MOVS
CMPS
RETN
shifts
VEX2/3
MOV
rotations
LOOPs
LOCK
Fx
TEST
PUSHF / LAHF
STOS / LODS
SCAS
exclusive
access
IceBP
ENTER
LEAVE
REPcc: HLT
IN / OUT
CMC
TEST/NOT/NEG
[i]MUL/[i]DIV
CALL
JMP
Clear/Set Flags
misc
arithmetic
flow
memory/reg
logical
group
flags
prefix
obsolete
comparison
system
stack
conditional
hidden
IRET
SYS
ENTER
RDTSC
CMOVcc
6x
8x
Jcc
9x
SETcc
FS CPUID
Ax PUSH
POP FS
BT
Cx
XADD
PUSH GS
POP GS
SHLD
BTS SHRD
*FENCE
IMUL
BT
POP
BTC BSF / BSR MOVZX
MOVZX CNT UD
Btx
CMP
XCHG
BSWAP
Dx
{FPU}
XLAT
JECXZ
HINT NOP
MOV CR/DR
MOV
Dx
Ex
MOV
CBW/CWD
CWDE/CDQ
CDQE/CQO
XCHG
prefetch
nta
pre
fetch
7x
XCHG
Bx
Cx
INS / OUTS
Jcc
8x
UD2
1x
4x
6x
SLDT SGDT
STR SIDT
VERx SMSW
IN / OUT
INC/DEC
INC CALL/JMP
DEC PUSH
Ex
Fx
x86-64
Android
.Net
Java
1 http://source.android.com/tech/dalvik/dalvik-bytecode.html
2 http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html
1 http://www.ecma-international.org/publications/standards/Ecma-335.htm p355-469
2 http://www.asukaze.net/etc/cil/opcode.html
http://java.sun.com/docs/books/jvms/second_edition/html/Instructions.doc.html
x0
0x
SubLeq
SubLeq