Flat Assembler
The flat assembler is a fast and efficient self-assembling 80x86 assembler for different operating systems like DOS, Windows, and Linux. It supports all 8086-80486/Pentium instructions with MMX, SSE, SSE2, SSE3, and 3DNow! extensions and x86-64 (both AMD64 and EM64T) instructions. It can produce output in binary, MZ, PE, COFF, or ELF format. Flat Assembler(FASM) supports automatic displacement optimization and some relatively fancy macro facilities and the syntax is very similar to NASM's (indeed, FASM has siphoned off many NASM users who were not happy with NASM's performance)
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 entirely written in assembly language.
You may download FASM directly from FASM support site and check for the latest and greatest version of FASM.