NASM ( assembler Netwide ) is a under the 2- clause BSD license displaced and thus free assembler for the x86 and x64 architectures. It supports MMX, SSE, SSE2, SSE3, SSSE3, SSE4, SSE5, AVX and 3DNow extensions of modern AMD and Intel processors.
Since NASM is available for multiple platforms, there is a large number of output formats to choose from, such as pure machine code (flat binary), Executable and Linking Format (ELF ) and a.out (Linux object files ), as well as the Windows formats COFF and OMF.
The assembler syntax of NASM is based on the syntax of Intel's ASM86. In addition to the actual assembler program NASM brings with even a macro preprocessor and a disassembler ( ndisasm ).