[+] Allowed PE fixups to be resolved anywhere in the generated executable.
version 1.69.26 (Nov 26, 2010)
[-] "swapgs" no longer allowed outside the 64-bit mode.
[-] Corrected a bug that caused crash in symbols dump generator when it
was running out of memory.
version 1.69.25 (Oct 11, 2010)
[-] Macroinstructions no longer breed the lines that are empty in their
definitions.
[-] "vmovsd" with three register operands is now optimized better.
version 1.69.24 (Sep 15, 2010)
[+] Added half-precision floating point values support.
version 1.69.23 (Sep 12, 2010)
[+] Added "large" keyword to 32-bit PE settings.
[-] Few more specific addressing-related size optimizations were improved.
version 1.69.22 (Sep 09, 2010)
[-] Formatter symbols like "PE" or "readable" are now recognized only in the
context of formatter directives, and thus are no longer disallowed as
labels.
version 1.69.21 (Sep 08, 2010)
[-] Corrected encoding of "pextrq" instruction with memory operand.
[-] Improved some very specific instruction size optimizations.
version 1.69.20 (Sep 06, 2010)
[+] Added missing "vstmxcsr", "xsave", "xrstor" instructions.
version 1.69.19 (Sep 04, 2010)
[-] Corrected the calculation of "shr" and "xor" on negative values when the size
of value is explicitly stated.
[-] Allowed "dup" to be used with zero count. Also other small corrections were
made in handling various counts specified to assembler.
The flat assembler is a fast and efficient self-assembling 80x86 assembler
for DOS, Windows and Linux operating systems.
Currently it supports all 8086-80486/Pentium instructions with MMX, SSE,
SSE2, SSE3 and 3DNow! extensions and x86-64 (both AMD64 and EM64T)
instructions, 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 self-compilable and the full source code is included.