flat assembler
Open source assembly language compiler.

The flat assembler is a fast and efficient self-assembling x86 assembler for DOS, Windows and Linux operating systems. Currently it supports x86 and x86-64 instructions sets with MMX, 3DNow!, SSE up to SSE4, AVX, AVX2 and XOP extensions, can produce output in plain binary, MZ, PE, COFF or ELF format. It includes the powerful but easy to use macroinstruction support and does multiple passes to optimize the instruction codes for size. The flat assembler is self-compilable and the complete source code is included.

The only difference between the various flat assembler packages is the operating system on which they can be executed. From given source each version will generate exactly the same output file, so with each of the following releases you can compile programs for any operating system.

The packages listed below are the latest development snapshot and they include the support for AVX-512 instructions. Note that these versions may not yet be thoroughly tested.

The flat assembler g is the new assembly engine designed to become a successor of the one used by flat assembler 1. It does not have a built-in support for x86 instructions. It is a generic assembler that can be used in place of flat assembler 1 in applications where only the pure macroinstruction engine is needed instead of x86 encoder, for example when an instruction set for a different architecture is defined through macroinstructions.

Copyright © 2004-2013, Tomasz Grysztar.