Skip to main content
Fork me on GitHub

Free Code Manipulation Library

This is a general purpose machine code manipulation library for IA-32 and Intel 64 architectures. The library supports UNIX-like systems as well as Windows and is highly portable. The FCML library is free for commercial and non-commercial use as long as the terms of the LGPL license are met. Currently it supports such features as:

  • A one-line disassembler
  • A one-line assembler
  • An experimental multi-pass load-and-go assembler (Multi line!)
  • Support for the Intel and AT&T syntax
  • An instruction renderer
  • An instruction parser
  • Instructions represented as generic models
  • UNIX/GNU/Linux and Windows support
  • Portable - written entirely in C (no external dependencies)
  • C++ wrapper
  • Supported instruction sets: MMX, 3D-Now!, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, SSE4A, AVX, AVX2, AES, TBM, BMI1, BMI2, HLE, ADX, CLMUL, RDRAND, RDSEED, FMA, FMA4, LWP, SVM, XOP, VMX, SMX, AVX-512, XEON PHI

Click for more details!

Quick Start

This guide shows how to assemble and disassemble instructions with as little effort as possible, without digging into every detail and function supported by the library. These chapters are completely independent, so if you are interested only in disassembling, feel free to read the disassembler section only!

Let's read »

Manual

If you are looking for comprehensive documentation describing all FCML features in detail, you can head over to the manual pages!

Let's read »

Download

Here you can download distribution packages which consist of the library source code which can be used to build the library and pre-built binaries for Windows (MinGW and Visual Studio).

Let's download »