1. Opcodes'
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 inspired by the work of Daniel Plohmann
Ange Albertini 2012 http://corkami.com Creative Commons Attribution 3.0 Unported License
4. x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
move* move-wide* move-object* move-result* move- return*
0x nop
* /from16 /16 * /from16 /16 * /from16 /16 * -wide -object exception -void *
return* const const-wide const-string const- monitor check
1x -wide -object /4 /16 * /high16 /16 /32 * /high16 * -jumbo class enter exit cast
instance array new* filled-new-array fill- goto *-switch cmp*-float cmp*-double
2x of length *instance *array * -range array-data
throw
* /16 /32 packed* sparse* l g l
cmp*-double cmp- if-* if-*z
3x g long eq ne lt ge gt le eq ne lt ge gt le
aget aput...
4x * -wide -object -bool -byte -char -short * -wide -object -bool -byte
...aput iget iput
5x -char -short * -wide -object -bool -byte -char -short * -wide -object -bool -byte -char -short
sget sput invoke-*...
6x * -wide -object -bool -byte -char -short * -wide -object -bool -byte -char -short virtual super
...invoke-* invoke-*/range neg* not* neg* not* neg*...
7x -direct -static -interface virtual super -direct -static -interface -int -int -long -long -float
...neg* int-to-* long-to-* float-to double-to-* int-to-*
8x -double long float double int float double int long double int long float byte char short
*-int *-long...
9x add sub mul div rem and or xor shl shr ushr add sub mul div rem
...*-long *-float *-double
Ax and or xor shl shr ushr add sub mul div rem add sub mul div rem
*-int/2addr *-long/2addr...
Bx add sub mul div rem and or xor shl shr ushr add sub mul div rem
...*-long/2addr *-float/2addr *-double/2addr
Cx and or xor shl shr ushr add sub mul div rem add sub mul div rem
*-int/lit16 *-int/lit8
Dx add sub mul div rem and or xor add sub mul div rem and or xor
*-int/lit8 execute
Ex shl shr ushr inline
invoke- iget-*quick iput-*quick invoke-*-quick
Fx direct-empty * -wide -object * -wide -object virtual virtual/range super super/range
misc object conversion
moves flow arithmetic
method conditional
Dalvik Virtual Machine (android)
literals transfer
system logical undefined
5. 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
PUSH TWO SLDT SGDT
pre
0x ADD
PUSH/POP
OR
CS BYTE 0x STR SIDT
VERx SMSW
UD2 fetch
ES/SS
PUSH DS
1x ADC SBB
POP DS
1x prefetch
nta HINT NOP
2x AND ES: DAA SUB CS: DAS 2x MOV CR/DR
3x XOR SS: AAA CMP DS: AAS 3x RDTSC
SYS
ENTER
4x INC / DEC 4x CMOVcc
5x PUSH /POP 5x
PUSHA oper. addr
6x POPA
BOUND ARPL FS: GS: size override
PUSH IMUL PUSH IMUL INS / OUTS 6x
7x Jcc 7x
ADD/ADC/AND/XOR
8x OR/SBB/SUB/CMP
TEST XCHG MOV LEA MOV POP 8x Jcc
NOP CBW/CWD
9x XCHG CWDE/CDQ
CALL WAIT PUSHF / LAHF 9x SETcc
Ax MOV EAX MOVS CMPS TEST STOS / LODS SCAS Ax PUSHFS CPUID
POP
FS
BT SHLD
PUSH GS
POP GS
BTS SHRD *FENCE IMUL
POP BT
Bx MOV Bx CMPXCHG LSS BTR LFS / LGS MOVZX CNT UD
Btx
BTC BSF / BSR MOVZX
ENTER
Cx shifts
RETN LES / LDS MOV
LEAVE
RETF INT3 INT INTO IRET Cx XADD CMP
XCHG BSWAP
Dx rotations AAM AAD SALC XLAT {FPU} Dx
Ex LOOPs JECXZ IN / OUT CALL / JMP IN / OUT Ex
LOCK
TEST/NOT/NEG INC CALL/JMP
INC/DEC
IceBP REPcc: HLT CMC Clear/Set Flags
Fx exclusive
access
[i]MUL/[i]DIV
DEC PUSH Fx
misc arithmetic flow
memory/reg logical group
flags prefix
obsolete comparison system
stack conditional hidden
usermode only, no extra instruction set x86
6. 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
SLDT SGDT
TWO pre
0x ADD OR BYTE 0x STR SIDT
VERx SMSW
UD2 fetch
1x ADC SBB 1x prefetch
nta HINT NOP
2x AND ES: SUB CS: 2x MOV CR/DR
3x XOR SS: CMP DS: 3x RDTSC
SYS
ENTER
4x REX: 4x CMOVcc
5x PUSH /POP 5x
oper. addr
6x MOVSXD FS: GS: size override
PUSH IMUL PUSH IMUL INS / OUTS 6x
7x Jcc 7x
ADD/ADC/AND/XOR
8x OR/SBB/SUB/CMP
TEST XCHG MOV LEA MOV POP 8x Jcc
NOP CBW/CWD
9x XCHG CWDE/CDQ
CDQE/CQO
WAIT PUSHF / LAHF 9x SETcc
Ax MOV EAX MOVS CMPS TEST STOS / LODS SCAS Ax PUSHFS CPUID
POP
FS
BT SHLD
PUSH GS
POP GS
BTS SHRD *FENCE IMUL
POP BT
Bx MOV Bx CMPXCHG LSS BTR LFS / LGS MOVZX CNT UD
Btx
BTC BSF / BSR MOVZX
ENTER
Cx shifts
RETN VEX2/3 MOV
LEAVE
RETF INT3 INT IRET Cx XADD CMP
XCHG BSWAP
Dx rotations XLAT {FPU} Dx
Ex LOOPs JECXZ IN / OUT CALL JMP IN / OUT Ex
LOCK
TEST/NOT/NEG INC CALL/JMP
INC/DEC
IceBP REPcc: HLT CMC Clear/Set Flags
Fx exclusive
access
[i]MUL/[i]DIV
DEC PUSH Fx
misc arithmetic flow
memory/reg logical group
flags prefix
obsolete comparison system
stack conditional hidden
usermode only, no extra instruction set x86-64