The flat assembler is a fast and efficient self-assembling 80x86 assembler for DOS, Windows, and Linux operating systems. 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. 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.
| Tags | Software Development Assemblers Compilers Utilities Other/Nonlisted Topic education |
|---|---|
| Licenses | BSD Revised |
| Operating Systems | Windows MS-DOS POSIX Linux BSD Windows Windows |
| Implementation | Assembly |
Recent releases


Release Notes: Full support for SSE4, SVM, and SMX instruction set extensions has been added. Ability to generate Portable Executable files for UEFI has been introduced. Several other smaller additions and fixes concluding the 1.67.x development line were included in this milestone release.


Release Notes: The optional output of symbolic information was added, and the tools that allow you to extract data from this file and show it in a human-readable form are provided. Several minor fixes and enhancements were applied at the same time.


Release Notes: 32-bit relocations are now allowed in PE64 output format. EIP-relative addressing was added. The PLT operator was added for the ELF output format. SSSE3 (Supplemental SSE3) instructions were added. Some Win64 headers and examples were provided in the Windows package. The SYSRETQ mnemonic was added, and RDMSRQ/WRMSRQ/SYSEXITQ mnemonics were added for the 64-bit variants of respective instructions. R8L-R15L (Intel-style) aliases were added for R8B-R15B registers. Support for the AMD SVM technology instructions was added. Numerous bugs were fixed.


Release Notes: Support was added for outputting the 32-bit address relocations in case of 64-bit object formats. The PE formatter now automatically detects whether code and data addresses should be relocatable. The instructions of the SVM extension of the AMD architecture have been implemented.


Release Notes: This release adds GOT support for the ELF object output and the new DEFINE directive as a slightly different alternative form of EQU. A lot of small fixes and improvements have been made.
Recent comments
18 Jan 2004 07:06
Re: Wrong license selected.
Thanks. I've updated the listing.
16 Jan 2004 13:22
Wrong license selected.
On the behalf of the author ( Tomasz Grysztar, aka Privalov) I'd like to say that you have selected the wrong license(s) for fasm.
The license for fasm is the BSD license ("OSI Approved :: BSD License (revised)"), not "Freeware" nor "GNU GPL".
Please, correct the misstake as soon as possible, and if you have any questions or doubts, please visit board.flatassembler.net (the official support site) and ask Privalov him self or post an thread.
Best Regards
Scientica
An Eclipse plugin which provides a Vim-like input scheme for text editors.