Your SlideShare is downloading. ×
Opcodes tables (compact)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Opcodes tables (compact)

759
views

Published on

in compact, one A4 Page format …

in compact, one A4 Page format
images and sources available @ http://opcodes.corkami.com

Published in: Business, Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
759
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Opcodes tables CompactThis file is free to modify and re-use, with no restrictions, even commercially.its an OpenOffice document.1 grab its content via: svn export https://corkami.googlecode.com/svn/trunk/oOo/opcodes_tables_compact2 rezip with subdirectories as opcodes_tables_compact.odsopcodes tables are available as compact and complete form.Feb 21, 2012 inspired by the work of Daniel PlohmannAnge Albertini 2012 http://corkami.com  Creative Commons Attribution 3.0 Unported License
  • 2. x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF aconst_ iconst_* lconst_* fconst_* dconst_*0x nop null *m1 *0 *1 *2 *3 *4 *5 *0 *1 *0 *1 *2 *0 *1 *ipush ldc* *load iload_* lload_*...1x 1 b* 1 s* 2 * 1 *_w 2 *2_w 2 i* l* f* d* a* *0 *1 *2 *3 *0 *1 ...lload_* fload_* dload_* aload_* *aload...2x *2 *3 *0 *1 *2 *3 *0 *1 *2 *3 *0 *1 *2 *3 i* l* ...*aload *store istore_* lstore_*...3x 1 f* d* a* b* c* s* i* l* f* d* a* *0 *1 *2 *3 *0 ...lstore_* fstore_* dstore_* astore_* *astore...4x *1 *2 *3 *0 *1 *2 *3 *0 *1 *2 *3 *0 *1 *2 *3 i* ...*astore pop* dup*5x l* f* d* a* b* c* s* * *2 * *_x1 *_x2 *2 *2_x1 *2_x2 swap *add *sub *mul *div6x i* l* f* d* i* l* f* d* i* l* f* d* i* l* f* d* *rem *neg *shl *shr *ushr *and7x i* l* f* d* i* l* f* d* i* l* i* l* i* l* i* l* *or *xor i2* l2* f2* d2*...8x i* l* i* l* iinc 2 *l *f *d *i *f *d *i *l *d *i *l ...d2* i2* fcmp* dcmp* if* 2 if_icmp*..9x *f *b *c *s lcmp *l *g *l *g *eq *ne *lt *ge *gt *le *eq 2 ...if_icmp* if_acmp* *switch *return...Ax 2 2 v goto jsr ret *ne *lt *ge *gt *le *eq *ne 2 2 1 table* lookup* i* l* f* d* ...*return *static 2 *field invoke* *newarray arrayBx 2 xxunusedxxx1 new athrow a* * get* put* get* *put *virtual 2 *special 2 *static 2 *interface 4 2 * 1 a* 2 length check instance monitor* (pref.) multi if* breakCx 2 goto_w jsr_w cast 2 of 2 *enter *exit wide anewarray 3 *null *nonnull 4 4 point impdep*Fx *1 *2 misc arithmetic flow constants logical method immediates conversion object locals comparison system stack conditional undefined JVM (Java)
  • 3. x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF ldarg.* ldloc.* stloc.* ldarg*0x nop break *0 *1 *2 *3 *0 *1 *2 *3 *0 *1 *2 *3 *.s *a.s starg.s ldloc ldc.i4.*1x *.s *a.s stlock.s ldnull *m1 *0 *1 *2 *3 *4 *5 *6 *7 *8 *s ldc.* call* br* b*.s...2x *i4 *i8 *r4 *r8 dup pop jmp * *i ret *.s *false.s *true.s eq ge ...b*.s b*.un.s br b*3x gt le lt ne ge gt le lt * *false *true *eq *ge *gt *le *lt b*.un ldind.* …4x ne ge gt le lt switch *i1 *u1 *i2 *u2 *i4 *u4 *i8 *i *r4 *r8 ...ldind.* stind.* div* rem*5x *ref *ref *i1 *i2 *i4 *i8 *r4 *r8 add sub mul * *.un * *.un and shr conv.*6x or xor shl * *.un neg not *i1 *i2 *i4 *i8 *r4 *r8 *u4 *u8 callvirt cast ldfld* ldsfld*7x cpobj ldobj ldstr newobj class isinst conv.r.un unbox throw * *a stfld * *a conv.ovf.i*.un conv.ovf.u*.un conv.ovf.*.un8x stsfld stobj 1 2 4 8 1 2 4 8 i u box newarr ldlen ldelema ldelem.* stelem.*...9x *i1 *u1 *i2 *u2 *i4 *u4 *i8 *i *r4 *r8 *ref *i *i1 *i2 *i4 *i8 ...stelem.* unbox.Ax *r4 *r8 *ref ldelem stelem any conv.ovf.*Bx *i1 *u1 *i2 *u2 *i4 *u4 *i8 *u8 ref ck mkrefCx anyval finite any conv.* conv.ovf.* add.ovf* mul.ovf* sub.ovf* end leave*Dx ldtoken *u2 *u1 *i *i *u * *.un * *.un * *.un finally * *.s stind.iEx conv.uFE c* ld*ftn ldarg* ldloc* arglist starg stloc localloc 0x *eq *gt *gt.un *lt *lt.un * virt * *a * *aFE end un init init re ref read volatile. tail. constrained. cpblk no. sizeof 1x filter aligned. obj blk throw anytype only. misc immediates arithmetic fields prefix system stack logical array args method conversion references locals conditional object flow constants indirects exception comparison undefined Common Intermediate Language (.Net)
  • 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 check1x -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*-double2x of length *instance *array * -range array-data throw * /16 /32 packed* sparse* l g l cmp*-double cmp- if-* if-*z3x 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 iput5x -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 *-doubleAx 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/2addrCx and or xor shl shr ushr add sub mul div rem add sub mul div rem *-int/lit16 *-int/lit8Dx add sub mul div rem and or xor add sub mul div rem and or xor *-int/lit8 executeEx shl shr ushr inline invoke- iget-*quick iput-*quick invoke-*-quickFx 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 pre0x ADD PUSH/POP OR CS BYTE 0x STR SIDT VERx SMSW UD2 fetch ES/SS PUSH DS1x ADC SBB POP DS 1x prefetch nta HINT NOP2x AND ES: DAA SUB CS: DAS 2x MOV CR/DR3x XOR SS: AAA CMP DS: AAS 3x RDTSC SYS ENTER4x INC / DEC 4x CMOVcc5x PUSH /POP 5x PUSHA oper. addr6x POPA BOUND ARPL FS: GS: size override PUSH IMUL PUSH IMUL INS / OUTS 6x7x Jcc 7x ADD/ADC/AND/XOR8x OR/SBB/SUB/CMP TEST XCHG MOV LEA MOV POP 8x Jcc NOP CBW/CWD9x XCHG CWDE/CDQ CALL WAIT PUSHF / LAHF 9x SETccAx MOV EAX MOVS CMPS TEST STOS / LODS SCAS Ax PUSHFS CPUID POP FS BT SHLD PUSH GS POP GS BTS SHRD *FENCE IMUL POP BTBx MOV Bx CMPXCHG LSS BTR LFS / LGS MOVZX CNT UD Btx BTC BSF / BSR MOVZX ENTERCx shifts RETN LES / LDS MOV LEAVE RETF INT3 INT INTO IRET Cx XADD CMP XCHG BSWAPDx rotations AAM AAD SALC XLAT {FPU} DxEx LOOPs JECXZ IN / OUT CALL / JMP IN / OUT Ex LOCK TEST/NOT/NEG INC CALL/JMP INC/DEC IceBP REPcc: HLT CMC Clear/Set FlagsFx 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 pre0x ADD OR BYTE 0x STR SIDT VERx SMSW UD2 fetch1x ADC SBB 1x prefetch nta HINT NOP2x AND ES: SUB CS: 2x MOV CR/DR3x XOR SS: CMP DS: 3x RDTSC SYS ENTER4x REX: 4x CMOVcc5x PUSH /POP 5x oper. addr6x MOVSXD FS: GS: size override PUSH IMUL PUSH IMUL INS / OUTS 6x7x Jcc 7x ADD/ADC/AND/XOR8x OR/SBB/SUB/CMP TEST XCHG MOV LEA MOV POP 8x Jcc NOP CBW/CWD9x XCHG CWDE/CDQ CDQE/CQO WAIT PUSHF / LAHF 9x SETccAx MOV EAX MOVS CMPS TEST STOS / LODS SCAS Ax PUSHFS CPUID POP FS BT SHLD PUSH GS POP GS BTS SHRD *FENCE IMUL POP BTBx MOV Bx CMPXCHG LSS BTR LFS / LGS MOVZX CNT UD Btx BTC BSF / BSR MOVZX ENTERCx shifts RETN VEX2/3 MOV LEAVE RETF INT3 INT IRET Cx XADD CMP XCHG BSWAPDx rotations XLAT {FPU} DxEx LOOPs JECXZ IN / OUT CALL JMP IN / OUT Ex LOCK TEST/NOT/NEG INC CALL/JMP INC/DEC IceBP REPcc: HLT CMC Clear/Set FlagsFx 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
  • 7. Android 1 http://source.android.com/tech/dalvik/dalvik-bytecode.html 2 http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html.Net 1 http://www.ecma-international.org/publications/standards/Ecma-335.htm p355-469 2 http://www.asukaze.net/etc/cil/opcode.htmlJava http://java.sun.com/docs/books/jvms/second_edition/html/Instructions.doc.html
  • 8. x00x SubLeq SubLeq