2,284 → 2,65 |
Visit http://flatassembler.net/ for more information. |
|
|
version 1.67.35 (Mar 09, 2009) |
version 1.68 (Jun 13, 2009) |
|
[-] Some internal code size reductions. |
[+] Added SSSE3 (Supplemental SSE3), SSE4.1, SSE4.2 and SSE4a instructions. |
|
[-] Discontinued "-d" switch implementation. |
[+] Added the AMD SVM and Intel SMX instructions. |
|
[+] Added "rdmsrq", "wrmsrq", "sysexitq" and "sysretq" mnemonics for the |
64-bit variants of respective instructions. |
|
version 1.67.34 (Feb 22, 2009) |
[+] Added "fstenvw", "fstenvd", "fsavew", "fsaved", "frstorw" and "frstord" |
mnemonics to allow choosing between 16-bit and 32-bit variants of |
structures used by the "fstenv", "fsave" and "frstor" instructions. |
|
[-] Fixed small bug with DT directive far pointer syntax. |
[+] Added "plt" operator for the ELF output format. |
|
[+] Allowed "rva" operator to be used in MS COFF object format, and also |
added "static" keyword for the "public" directive. |
|
version 1.67.33 (Feb 20, 2009) |
[+] Added Intel-style aliases for the additional long mode 8-bit registers. |
|
[+] Added ERR directive that allows to signalize error from the source. |
[-] The PE formatter now automatically detects whether relocatable labels |
should be used, depending on whether the fixups directory is placed |
somewhere into executable by programer, or not. This makes possible the |
more flexible use of the addressing symbols in case of PE executable fixed |
at some position. |
|
[-] Added support for outputting the 32-bit address relocations in case of |
64-bit object formats and PE executable. This makes some specific |
instructions compilable, but it also forces linker to put such |
generated code into the low 2 gigabytes of addressing space. |
|
version 1.67.32 (Feb 13, 2009) |
[+] Added "EFI", "EFIboot" and "EFIruntime" subsystem keywords for PE format. |
|
[+] Allowed single quote character to be put inside the number value, |
to help improve long numbers readability. |
[-] Corrected the precedence of operators of macroinstruction line maker. |
The symbol escaping now has always the higher priority than symbol conversion, |
and both have higher precedence than concatenation. |
|
|
version 1.67.31 (Feb 11, 2009) |
|
[-] Fixed floating point converter to no longer generate NaN in some cases, |
and corrected denormal numbers generation. |
|
|
version 1.67.30 (Feb 08, 2009) |
|
[+] Added missing Intel SSE4 instructions. |
|
[+] Added SSE4a (EXTRQ/INSERTQ/MOVNTSD/MOVNTSS) instructions. |
|
[+] Added FSTENVW/FSTENVD/FSAVEW/FSAVED mnemonics. |
|
|
version 1.67.29 (Nov 15, 2008) |
|
[+] Added optional symbolic information output, and a set of tools that extract |
various kinds of information from it. |
|
[+] Allowed RVA operator to be used in COFF object format. |
|
[-] Corrected the FIX directive to allow names of preprocessor's directives to be |
used as prioritized symbolic constant name. |
|
|
version 1.67.28 (Nov 06, 2008) |
|
[+] Added EFI/EFIBOOT/EFIRUNTIME subsystem keywords for PE format (experimental |
feature, still needs to be tested). |
|
[-] Fixed a bug in preprocessor which caused some problems with DISPLAY directive |
output in some cases. |
|
[-] Fixed a bug that allowed to define a symbol named "eip" or "rip". |
|
[-] Fixed a problem with assembling MOVQ RAX,XMM0 instruction. |
|
|
version 1.67.27 (Jul 12, 2008) |
|
[-] Fixed a bug which caused instructions from JCXZ/LOOP family to be incorrectly |
assembled when requiring 67h prefix and provided with "$" operand. |
|
[-] Definition of macro with the same name as one of the preprocessor's directives |
is no longer allowed. |
|
[-] Fixed REPT directive to check out validity of its parameters even when the |
count is zero. |
|
[-] Fixed VMREAD/VMWRITE syntax in the USE64 mode. |
|
[-] Corrected MZ header generation and handling for the case when the last page of |
executable contains the round 512 bytes. |
|
|
version 1.67.26 (Jan 27, 2008) |
|
[+] Added partial SSE4 support (a couple of instructions left to be implemented |
in the next releases) |
|
[+] Added GETSEC instruction for the SMX functions calling. |
|
[-] Some fixes and rearrangements in the DOS version. |
|
|
version 1.67.25 (Dec 30, 2007) |
|
[-] Fixed a couple of bugs related to undefined symbol error signaling. |
|
|
version 1.67.24 (Dec 03, 2007) |
|
[+] Added "-d" option to allow predefining symbolic constants from command line. |
|
[-] Changed some of the error messages to be more informative. |
|
|
version 1.67.23 (Sep 08, 2007) |
|
[+] Added "static" keyword for the "public" directive in COFF format. |
|
[-] Redirected error information into stderr. |
|
|
version 1.67.22 (Aug 05, 2007) |
|
[+] Allowed to check "@b" and "@f" symbols with "defined" operator. |
|
[+] Allowed "as" operator to specify the output file extension when |
placed at the end of the "format" directive line. |
|
[-] Fixed a bug with stack size declaration in PE64 format that |
caused assembler to crash. |
[-] Definition of macro with the same name as one of the preprocessor's directives |
is no longer allowed. |
|
[-] Corrected the VMREAD and VMWRITE instructions to allow registers |
in place of memory operands. |
[+] Allowed single quote character to be put inside the number value, |
to help improve long numbers readability. |
|
[-] Corrected a mistake that made PLT operator not work correctly with |
the CALL instruction. |
[+] Added optional symbolic information output, and a set of tools that extract |
various kinds of information from it. |
|
[+] Added "err" directive that allows to signalize error from the source. |
|
version 1.67.21 (Feb 17, 2007) |
|
[+] Allowed 32-bit relocations in PE64 output format. |
|
[-] Fixed a bug that caused "push cr0" error to go unnoticed by assembler. |
|
|
version 1.67.20 (Feb 12, 2007) |
|
[-] Corrected the range checking of signed address displacements in 64-bit mode. |
|
|
version 1.67.19 (Feb 10, 2007) |
|
[-] Disallowed labels starting with $ character. |
|
[-] Fixed some problems with handling 32-bit relocations in 64-bit formats. |
|
|
version 1.67.18 (Dec 27, 2006) |
|
[-] Fixed a small mistake in the recent corrections of logical expression parser. |
|
|
version 1.67.17 (Dec 20, 2006) |
|
[-] Corrected the precedence of operators of macroinstruction line maker. |
The symbol escaping now has always the higher priority than symbol conversion, |
and both have higher precedence than concatenation. |
|
[-] Fixed problems with logical expression parser to handle correctly comparing |
values containing round brackets with the EQ or EQTYPE operator. |
The only limitation now is that when you use round brackets to enclose some |
logical expressions, they must be paired everywhere inside those expressions. |
|
|
version 1.67.16 (Dec 17, 2006) |
|
[-] Fixed a really old bug in register expression calculator. |
|
|
version 1.67.15 (Nov 20, 2006) |
|
[-] Some final (?) fixes and cleanup in the relative-offsets calculations. |
|
|
version 1.67.14 (Oct 28, 2006) |
|
[-] Another small bug fixes. |
|
|
version 1.67.13 (Oct 26, 2006) |
|
[-] Fixed a bug with handling of invalid expressions by "defined" operator. |
|
[-] Fixed a newly-introduced bug with relocations in automatically generated RIP-relative |
addressings. |
|
|
version 1.67.12 (Oct 1, 2006) |
|
[+] Added EIP-relative addressing, and fixed some bugs with RIP-related one aswell. |
|
|
version 1.67.11 (Sep 26, 2006) |
|
[+] Added PLT operator for the ELF output format. |
|
[-] Rearranged and fixed some of the relocation handling routines. |
|
|
version 1.67.10 (Sep 23, 2006) |
|
[+] Added SSSE3 (Supplemental SSE3) instructions. |
|
|
version 1.67.9 (Sep 21, 2006) |
|
[+] Added some Win64 headers and examples in the Windows package. |
|
[-] Fixed another operand size checking bug with MOVQ instruction. |
|
|
version 1.67.8 (Sep 17, 2006) |
|
[-] Fixed a bug in address processing that caused disallowed combinations like |
[qword eax] to be accepted. |
|
|
version 1.67.7 (Jul 31, 2006) |
|
[-] Fixed a bug that caused over-repeated processing of macro operators when |
many embedded macros were placed in one line |
|
[+] Added SYSRETQ mnemonic. |
|
|
version 1.67.6 (Jul 21, 2006) |
|
[+] Added (not yet documented) RDMSRQ/WRMSRQ/SYSEXITQ mnemonics for the 64-bit |
variants of respective instructions. |
|
[+] Added information about memory allocation to the command line interfaces. |
This should make it easier to decide when to use the -m switch. |
|
|
version 1.67.5 (Jul 7, 2006) |
|
[-] Fixed encoding of MOV (E)AX,[WORD ADDR] instruction in 32-bit mode. |
|
|
version 1.67.4 (Jul 5, 2006) |
|
[+] Added R8L-R15L (Intel-style) aliases for R8B-R15B registers. |
|
[-] Further optimizations in the parser. |
|
|
version 1.67.3 (Jul 2, 2006) |
|
[-] Improved an instruction searching algorithm a bit. |
|
|
version 1.67.2 (Jul 1, 2006) |
|
[-] Fixed a recently introduced bug with ELF relocations in case of 32-bit |
object. |
|
|
version 1.67.1 (Jun 30, 2006) |
|
[+] Added the support for the new AMD SVM technology instructions. |
|
|
version 1.67.0 (Jun 28, 2006) |
|
[-] The PE formatter now automatically detects whether relocatable labels |
should be used, depending on whether the fixups directory is placed |
somewhere into executable by programer, or not. This makes possible the |
more flexible use of the addressing symbols in case of PE executable fixed |
at some position. |
|
[-] Added support for outputting the 32-bit address relocations in case of |
64-bit object formats. This makes some specific instructions compilable, |
but it also forces linker to put such generated code into the low 2 |
gigabytes of addressing space. |
|
|
version 1.66 (May 7, 2006) |
|
[+] Added DEFINE directive to preprocessor, which defines symbolic constants, |
the same kind as EQU directive, however there's an important difference |
that DEFINE doesn't process symbolic constants in the value before |
[+] Added "define" directive to preprocessor, which defines symbolic constants, |
the same kind as "equ" directive, however there's an important difference |
that "define" doesn't process symbolic constants in the value before |
assigning it. For example: |
|
a equ 1 |
302,7 → 83,7 |
nop |
end if |
|
is parsed into just NOP instruction, since parser is able to determine |
is parsed into just "nop" instruction, since parser is able to determine |
that the condition is true, even though one of the logical values makes no |
sense - but since this is none of the "eq", "eqtype" and "in" expressions, |
the parser doesn't investigate. |
325,7 → 106,7 |
[-] The size operator applied to jump no longer applies to the size of relative |
displacement - now it applies to the size of target address. |
|
[-] The RET instruction with 0 parameter is now assembled into short form, |
[-] The "ret" instruction with 0 parameter is now assembled into short form, |
unless you force using the 16-bit immediate with "word" operator. |
|
[+] Added missing extended registers for the 32-bit addressing in long mode. |
350,7 → 131,7 |
[-] Some of the internal structures have been extended to provide the |
possibility of making extensive symbol dumps. |
|
[-] Corrected FIX directive to keep the value intact before assigning it to the |
[-] Corrected "fix" directive to keep the value intact before assigning it to the |
prioritized constant. |
|
[+] The ` operator now works with any kind of symbol; when used with quoted |