minx86dec

Small x86 opcode decoder library

MIT License

Stars
31

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)