The flat assembler (FASM) is a fast and efficient self-assembling x86 assembler for DOS, Windows and *nix (BSD etc.) operating systems. Currently it supports all x86/x64 instructions with MMX, 3DNow!, SSE up to SSE4, AVX, AVX2 and XOP extensions, can produce output in binary, MZ, PE, COFF or ELF format. It includes a powerful but easy to use macro language and compiles in multiple passes to optimize the instruction codes for size. The flat assembler is self-compilable and the full source code is included.