/minx86dec

Small x86 opcode decoder library

Primary LanguageCMIT LicenseMIT

Minimalist 80x86 decompiler library.
Use for any program or tool you write to decompile opcodes.
Written in plain C for speed and lightness.

core8086.c             8086/8088 decoding engine
corenecv20.c           80186 NEC V20/V30 decoding engine
core286.c              286 decoding engine
core386.c              386 decoding engine
core386am.c            AMD Am386 decoding engine
core486.c              486 decoding engine
core486a.c             486 Step A decoding engine
core486am.c            AMD Am486 decoding engine
core486cyrix.c         Cyrix decodign engine 486 level
core586.c              Pentium decoding engine
core5x86_cyrix.c       Cyrix decoding engine 5x86
core586pro.c           Pentium Pro decoding engine
core686.c              686 or higher-level (Pentium II or higher) decoding engine
core6x86_cyrix.c       Cyrix decoding engine 6x86 (including Cyrix MMX)
coreall.c              General-purpose x86 decoding engine (all instructions, except those replaced by newer instructions)
coreall_x64.c          General-purpose x86-64 decoding engine (for decoding instructions in 64-bit long mode)

And using the same library, you can also ENCODE opcodes, using the decompiled instruction struct.
This makes it easy to implement assemblers, dynamic recompilers and JIT engines.

encoreall.c            General-purpose x86 encoding engine (all instructions, including those that overlap)