Subversion Repositories Kolibri OS

Rev

Rev 1053 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1053 Rev 1115
Line 1... Line 1...
1
Visit http://flatassembler.net/ for more information.
1
Visit http://flatassembler.net/ for more information.
Line 2... Line 2...
2
 
2
 
Line 3... Line 3...
3
 
3
 
Line 4... Line 4...
4
version 1.67.35 (Mar 09, 2009)
4
version 1.68 (Jun 13, 2009)
Line -... Line 5...
-
 
5
 
-
 
6
[+] Added SSSE3 (Supplemental SSE3), SSE4.1, SSE4.2 and SSE4a instructions.
Line -... Line 7...
-
 
7
 
5
 
8
[+] Added the AMD SVM and Intel SMX instructions.
-
 
9
 
Line 6... Line 10...
6
[-] Some internal code size reductions.
10
[+] Added "rdmsrq", "wrmsrq", "sysexitq" and "sysretq" mnemonics for the
Line -... Line 11...
-
 
11
    64-bit variants of respective instructions.
-
 
12
 
Line 7... Line 13...
7
 
13
[+] Added "fstenvw", "fstenvd", "fsavew", "fsaved", "frstorw" and "frstord"
Line 8... Line -...
8
[-] Discontinued "-d" switch implementation.
-
 
9
 
-
 
10
 
-
 
11
version 1.67.34 (Feb 22, 2009)
-
 
12
 
-
 
13
[-] Fixed small bug with DT directive far pointer syntax.
-
 
14
 
-
 
15
 
-
 
16
version 1.67.33 (Feb 20, 2009)
-
 
17
 
-
 
18
[+] Added ERR directive that allows to signalize error from the source.
-
 
19
 
14
    mnemonics to allow choosing between 16-bit and 32-bit variants of
20
 
-
 
21
version 1.67.32 (Feb 13, 2009)
-
 
22
 
-
 
23
[+] Allowed single quote character to be put inside the number value,
-
 
24
    to help improve long numbers readability.
-
 
25
 
-
 
26
 
-
 
27
version 1.67.31 (Feb 11, 2009)
-
 
28
 
-
 
29
[-] Fixed floating point converter to no longer generate NaN in some cases,
-
 
30
    and corrected denormal numbers generation.
-
 
31
 
-
 
32
 
-
 
33
version 1.67.30 (Feb 08, 2009)
-
 
34
 
-
 
35
[+] Added missing Intel SSE4 instructions.
-
 
36
 
-
 
37
[+] Added SSE4a (EXTRQ/INSERTQ/MOVNTSD/MOVNTSS) instructions.
-
 
38
 
-
 
39
[+] Added FSTENVW/FSTENVD/FSAVEW/FSAVED mnemonics.
-
 
40
 
-
 
41
 
-
 
42
version 1.67.29 (Nov 15, 2008)
-
 
43
 
-
 
44
[+] Added optional symbolic information output, and a set of tools that extract
-
 
45
    various kinds of information from it.
-
 
46
 
-
 
47
[+] Allowed RVA operator to be used in COFF object format.
-
 
48
 
-
 
49
[-] Corrected the FIX directive to allow names of preprocessor's directives to be
-
 
50
    used as prioritized symbolic constant name.
-
 
51
 
-
 
52
 
-
 
53
version 1.67.28 (Nov 06, 2008)
-
 
54
 
-
 
55
[+] Added EFI/EFIBOOT/EFIRUNTIME subsystem keywords for PE format (experimental
-
 
56
    feature, still needs to be tested).
-
 
57
 
-
 
58
[-] Fixed a bug in preprocessor which caused some problems with DISPLAY directive
-
 
59
    output in some cases.
15
    structures used by the "fstenv", "fsave" and "frstor" instructions.
60
 
-
 
61
[-] Fixed a bug that allowed to define a symbol named "eip" or "rip".
-
 
62
 
-
 
63
[-] Fixed a problem with assembling MOVQ RAX,XMM0 instruction.
-
 
64
 
16
 
65
 
-
 
66
version 1.67.27 (Jul 12, 2008)
-
 
67
 
-
 
68
[-] Fixed a bug which caused instructions from JCXZ/LOOP family to be incorrectly
-
 
69
    assembled when requiring 67h prefix and provided with "$" operand.
-
 
70
 
-
 
71
[-] Definition of macro with the same name as one of the preprocessor's directives
-
 
72
    is no longer allowed.
-
 
73
 
-
 
74
[-] Fixed REPT directive to check out validity of its parameters even when the
-
 
75
    count is zero.
-
 
76
 
-
 
77
[-] Fixed VMREAD/VMWRITE syntax in the USE64 mode.
-
 
78
 
-
 
79
[-] Corrected MZ header generation and handling for the case when the last page of
-
 
80
    executable contains the round 512 bytes.
-
 
81
 
-
 
82
 
-
 
83
version 1.67.26 (Jan 27, 2008)
-
 
84
 
-
 
85
[+] Added partial SSE4 support (a couple of instructions left to be implemented
-
 
86
    in the next releases)
-
 
87
 
-
 
88
[+] Added GETSEC instruction for the SMX functions calling.
-
 
89
 
-
 
90
[-] Some fixes and rearrangements in the DOS version.
17
[+] Added "plt" operator for the ELF output format.
91
 
-
 
92
 
-
 
93
version 1.67.25 (Dec 30, 2007)
-
 
94
 
-
 
95
[-] Fixed a couple of bugs related to undefined symbol error signaling.
-
 
96
 
-
 
97
 
-
 
98
version 1.67.24 (Dec 03, 2007)
-
 
99
 
-
 
100
[+] Added "-d" option to allow predefining symbolic constants from command line.
-
 
101
 
-
 
102
[-] Changed some of the error messages to be more informative.
-
 
103
 
-
 
104
 
-
 
105
version 1.67.23 (Sep 08, 2007)
-
 
106
 
-
 
107
[+] Added "static" keyword for the "public" directive in COFF format.
-
 
108
 
-
 
109
[-] Redirected error information into stderr.
-
 
110
 
-
 
111
 
-
 
112
version 1.67.22 (Aug 05, 2007)
-
 
113
 
-
 
114
[+] Allowed to check "@b" and "@f" symbols with "defined" operator.
-
 
115
 
-
 
116
[+] Allowed "as" operator to specify the output file extension when
18
 
117
    placed at the end of the "format" directive line.
-
 
118
 
-
 
119
[-] Fixed a bug with stack size declaration in PE64 format that
-
 
120
    caused assembler to crash.
-
 
121
 
-
 
122
[-] Corrected the VMREAD and VMWRITE instructions to allow registers
-
 
123
    in place of memory operands.
-
 
124
 
-
 
125
[-] Corrected a mistake that made PLT operator not work correctly with
-
 
126
    the CALL instruction.
-
 
127
 
-
 
128
 
-
 
129
version 1.67.21 (Feb 17, 2007)
-
 
130
 
-
 
131
[+] Allowed 32-bit relocations in PE64 output format.
-
 
132
 
-
 
133
[-] Fixed a bug that caused "push cr0" error to go unnoticed by assembler.
-
 
134
 
-
 
135
 
-
 
136
version 1.67.20 (Feb 12, 2007)
-
 
137
 
-
 
138
[-] Corrected the range checking of signed address displacements in 64-bit mode.
-
 
139
 
-
 
140
 
-
 
Line -... Line 19...
-
 
19
[+] Allowed "rva" operator to be used in MS COFF object format, and also
-
 
20
    added "static" keyword for the "public" directive.
-
 
21
 
-
 
22
[+] Added Intel-style aliases for the additional long mode 8-bit registers.
Line 141... Line 23...
141
version 1.67.19 (Feb 10, 2007)
23
 
Line 142... Line 24...
142
 
24
[-] The PE formatter now automatically detects whether relocatable labels
143
[-] Disallowed labels starting with $ character.
25
    should be used, depending on whether the fixups directory is placed
144
 
26
    somewhere into executable by programer, or not. This makes possible the
Line 145... Line -...
145
[-] Fixed some problems with handling 32-bit relocations in 64-bit formats.
-
 
146
 
-
 
147
 
-
 
148
version 1.67.18 (Dec 27, 2006)
-
 
149
 
-
 
150
[-] Fixed a small mistake in the recent corrections of logical expression parser.
-
 
151
 
-
 
152
 
-
 
153
version 1.67.17 (Dec 20, 2006)
-
 
154
 
-
 
155
[-] Corrected the precedence of operators of macroinstruction line maker.
-
 
156
    The symbol escaping now has always the higher priority than symbol conversion,
-
 
157
    and both have higher precedence than concatenation.
-
 
158
 
-
 
159
[-] Fixed problems with logical expression parser to handle correctly comparing
-
 
160
    values containing round brackets with the EQ or EQTYPE operator.
-
 
161
    The only limitation now is that when you use round brackets to enclose some
-
 
162
    logical expressions, they must be paired everywhere inside those expressions.
-
 
163
 
-
 
164
 
-
 
165
version 1.67.16 (Dec 17, 2006)
-
 
166
 
-
 
167
[-] Fixed a really old bug in register expression calculator.
-
 
168
 
27
    more flexible use of the addressing symbols in case of PE executable fixed
169
 
-
 
170
version 1.67.15 (Nov 20, 2006)
-
 
171
 
-
 
172
[-] Some final (?) fixes and cleanup in the relative-offsets calculations.
-
 
173
 
-
 
174
 
-
 
175
version 1.67.14 (Oct 28, 2006)
-
 
176
 
-
 
177
[-] Another small bug fixes.
-
 
178
 
-
 
179
 
-
 
180
version 1.67.13 (Oct 26, 2006)
-
 
181
 
-
 
182
[-] Fixed a bug with handling of invalid expressions by "defined" operator.
-
 
183
 
-
 
184
[-] Fixed a newly-introduced bug with relocations in automatically generated RIP-relative
-
 
185
    addressings.
-
 
186
 
-
 
187
 
-
 
188
version 1.67.12 (Oct 1, 2006)
-
 
189
 
-
 
190
[+] Added EIP-relative addressing, and fixed some bugs with RIP-related one aswell.
-
 
191
 
-
 
192
 
-
 
193
version 1.67.11 (Sep 26, 2006)
-
 
194
 
-
 
195
[+] Added PLT operator for the ELF output format.
-
 
196
 
-
 
197
[-] Rearranged and fixed some of the relocation handling routines.
-
 
198
 
-
 
199
 
-
 
200
version 1.67.10 (Sep 23, 2006)
-
 
201
 
-
 
202
[+] Added SSSE3 (Supplemental SSE3) instructions.
-
 
203
 
-
 
204
 
-
 
205
version 1.67.9 (Sep 21, 2006)
-
 
206
 
-
 
207
[+] Added some Win64 headers and examples in the Windows package.
-
 
208
 
-
 
209
[-] Fixed another operand size checking bug with MOVQ instruction.
-
 
210
 
-
 
211
 
-
 
212
version 1.67.8 (Sep 17, 2006)
-
 
213
 
-
 
214
[-] Fixed a bug in address processing that caused disallowed combinations like
-
 
215
    [qword eax] to be accepted.
-
 
216
 
-
 
217
 
-
 
218
version 1.67.7 (Jul 31, 2006)
-
 
219
 
-
 
220
[-] Fixed a bug that caused over-repeated processing of macro operators when
-
 
221
    many embedded macros were placed in one line
-
 
222
 
-
 
223
[+] Added SYSRETQ mnemonic.
-
 
224
 
-
 
225
 
-
 
226
version 1.67.6 (Jul 21, 2006)
-
 
227
 
-
 
228
[+] Added (not yet documented) RDMSRQ/WRMSRQ/SYSEXITQ mnemonics for the 64-bit
-
 
229
    variants of respective instructions.
-
 
230
 
-
 
231
[+] Added information about memory allocation to the command line interfaces.
-
 
232
    This should make it easier to decide when to use the -m switch.
-
 
233
 
-
 
234
 
-
 
235
version 1.67.5 (Jul 7, 2006)
-
 
236
 
-
 
237
[-] Fixed encoding of MOV (E)AX,[WORD ADDR] instruction in 32-bit mode.
-
 
238
 
-
 
239
 
-
 
240
version 1.67.4 (Jul 5, 2006)
-
 
241
 
-
 
242
[+] Added R8L-R15L (Intel-style) aliases for R8B-R15B registers.
-
 
243
 
-
 
244
[-] Further optimizations in the parser.
-
 
Line 245... Line 28...
245
 
28
    at some position.
-
 
29
 
Line -... Line 30...
-
 
30
[-] Added support for outputting the 32-bit address relocations in case of
-
 
31
    64-bit object formats and PE executable. This makes some specific
Line -... Line 32...
-
 
32
    instructions compilable, but it also forces linker to put such
246
 
33
    generated code into the low 2 gigabytes of addressing space.
Line 247... Line 34...
247
version 1.67.3 (Jul 2, 2006)
34
 
248
 
-
 
249
[-] Improved an instruction searching algorithm a bit.
-
 
250
 
-
 
251
 
35
[+] Added "EFI", "EFIboot" and "EFIruntime" subsystem keywords for PE format.
Line 252... Line 36...
252
version 1.67.2 (Jul 1, 2006)
36
 
253
 
-
 
254
[-] Fixed a recently introduced bug with ELF relocations in case of 32-bit
-
 
255
    object.
-
 
Line 256... Line 37...
256
 
37
[-] Corrected the precedence of operators of macroinstruction line maker.
Line 257... Line 38...
257
 
38
    The symbol escaping now has always the higher priority than symbol conversion,
258
version 1.67.1 (Jun 30, 2006)
39
    and both have higher precedence than concatenation.
259
 
40
 
260
[+] Added the support for the new AMD SVM technology instructions.
41
[+] Allowed to check "@b" and "@f" symbols with "defined" operator.
Line 261... Line 42...
261
 
42
 
262
 
43
[+] Allowed "as" operator to specify the output file extension when
Line 300... Line 81...
300
        if eax eq EAX | 0/0
81
	if eax eq EAX | 0/0
301
                nop
82
		nop
302
        end if
83
	end if
Line 303... Line 84...
303
 
84
 
304
    is parsed into just NOP instruction, since parser is able to determine
85
    is parsed into just "nop" instruction, since parser is able to determine
305
    that the condition is true, even though one of the logical values makes no
86
    that the condition is true, even though one of the logical values makes no
306
    sense - but since this is none of the "eq", "eqtype" and "in" expressions,
87
    sense - but since this is none of the "eq", "eqtype" and "in" expressions,
Line 307... Line 88...
307
    the parser doesn't investigate.
88
    the parser doesn't investigate.
Line 323... Line 104...
323
 
104
 
Line 324... Line 105...
324
[-] The size operator applied to jump no longer applies to the size of relative
105
[-] The size operator applied to jump no longer applies to the size of relative
325
    displacement - now it applies to the size of target address.
106
    displacement - now it applies to the size of target address.
Line 326... Line 107...
326
 
107
 
327
[-] The RET instruction with 0 parameter is now assembled into short form,
108
[-] The "ret" instruction with 0 parameter is now assembled into short form,
Line 328... Line 109...
328
    unless you force using the 16-bit immediate with "word" operator.
109
    unless you force using the 16-bit immediate with "word" operator.
Line 329... Line 110...
329
 
110
 
Line 348... Line 129...
348
 
129
 
Line 349... Line 130...
349
[-] Some of the internal structures have been extended to provide the
130
[-] Some of the internal structures have been extended to provide the
350
    possibility of making extensive symbol dumps.
131
    possibility of making extensive symbol dumps.
Line 351... Line 132...
351
 
132
 
352
[-] Corrected FIX directive to keep the value intact before assigning it to the
133
[-] Corrected "fix" directive to keep the value intact before assigning it to the
Line 353... Line 134...
353
    prioritized constant.
134
    prioritized constant.
354
 
135
 
355
[+] The ` operator now works with any kind of symbol; when used with quoted
136
[+] The ` operator now works with any kind of symbol; when used with quoted