NASM is a prototype general-purpose x86 assembler. It can currently output several binary formats, including ELF, a.out, Win32, and OS/2.