mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-09-22 10:43:39 -04:00
244 lines
8.4 KiB
Plaintext
244 lines
8.4 KiB
Plaintext
Change log for NASM
|
|
===================
|
|
|
|
0.90 released October 1996
|
|
--------------------------
|
|
|
|
First release version. First support for object file output. Other
|
|
changes from previous version (0.3x) too numerous to document.
|
|
|
|
0.91 released November 1996
|
|
---------------------------
|
|
|
|
Loads of bug fixes.
|
|
Support for RDF added.
|
|
Support for DBG debugging format added.
|
|
Support for 32-bit extensions to Microsoft OBJ format added.
|
|
Revised for Borland C: some variable names changed, makefile added.
|
|
LCC support revised to actually work.
|
|
JMP/CALL NEAR/FAR notation added.
|
|
`a16', `o16', `a32' and `o32' prefixes added.
|
|
Range checking on short jumps implemented.
|
|
MMX instruction support added.
|
|
Negative floating point constant support added.
|
|
Memory handling improved to bypass 64K barrier under DOS.
|
|
$ prefix to force treatment of reserved words as identifiers added.
|
|
Default-size mechanism for object formats added.
|
|
Compile-time configurability added.
|
|
`#', `@', `~' and `?' are now valid characters in labels.
|
|
`-e' and `-k' options in NDISASM added.
|
|
|
|
0.92 released January 1997
|
|
--------------------------
|
|
|
|
The FDIVP/FDIVRP and FSUBP/FSUBRP pairs had been inverted: this was
|
|
fixed. This also affected the LCC driver.
|
|
|
|
Fixed a bug regarding 32-bit effective addresses of the form
|
|
[other_register+ESP].
|
|
|
|
Documentary changes, notably documentation of the fact that Borland
|
|
Win32 compilers use `obj' rather than `win32' object format.
|
|
|
|
Fixed the COMENT record in OBJ files, which was formatted
|
|
incorrectly.
|
|
|
|
Fixed a bug causing segfaults in large RDF files.
|
|
|
|
OBJ format now strips initial periods from segment and group
|
|
definitions, in order to avoid complications with the local label
|
|
syntax.
|
|
|
|
Fixed a bug in disassembling far calls and jumps in NDISASM.
|
|
|
|
Added support for user-defined sections in COFF and ELF files.
|
|
|
|
Compiled the DOS binaries with a sensible amount of stack, to
|
|
prevent stack overflows on any arithmetic expression containing
|
|
parentheses.
|
|
|
|
Fixed a bug in handling of files that do not terminate in a newline.
|
|
|
|
0.93 released January 1997
|
|
--------------------------
|
|
|
|
This release went out in a great hurry after semi-crippling bugs
|
|
were found in 0.92.
|
|
|
|
Really _did_ fix the stack overflows this time. *blush*
|
|
|
|
Had problems with EA instruction sizes changing between passes, when
|
|
an offset contained a forward reference and so 4 bytes were
|
|
allocated for the offset in pass one; by pass two the symbol had
|
|
been defined and happened to be a small absolute value, so only 1
|
|
byte got allocated, causing instruction size mismatch between passes
|
|
and hence incorrect address calculations. Fixed.
|
|
|
|
Stupid bug in the revised ELF section generation fixed (associated
|
|
string-table section for .symtab was hard-coded as 7, even when this
|
|
didn't fit with the real section table). Was causing `ld' to
|
|
seg-fault under Linux.
|
|
|
|
Included a new Borland C makefile, Makefile.bc2, donated by Fox
|
|
Cutter <lmb@comtch.iea.com>.
|
|
|
|
0.94 released April 1997
|
|
------------------------
|
|
|
|
Major item: added the macro processor.
|
|
|
|
Added undocumented instructions SMI, IBTS, XBTS and LOADALL286. Also
|
|
reorganised CMPXCHG instruction into early-486 and Pentium forms.
|
|
Thanks to Thobias Jones for the information.
|
|
|
|
Fixed two more stupid bugs in ELF, which were causing `ld' to
|
|
continue to seg-fault in a lot of non-trivial cases.
|
|
|
|
Fixed a seg-fault in the label manager.
|
|
|
|
Stopped FBLD and FBSTP from _requiring_ the TWORD keyword, which is
|
|
the only option for BCD loads/stores in any case.
|
|
|
|
Ensured FLDCW, FSTCW and FSTSW can cope with the WORD keyword, if
|
|
anyone bothers to provide it. Previously they complained unless no
|
|
keyword at all was present.
|
|
|
|
Some forms of FDIV/FDIVR and FSUB/FSUBR were still inverted: a
|
|
vestige of a bug that I thought had been fixed in 0.92. This was
|
|
fixed, hopefully for good this time...
|
|
|
|
Another minor phase error (insofar as a phase error can _ever_ be
|
|
minor) fixed, this one occurring in code of the form
|
|
rol ax,forward_reference
|
|
forward_reference equ 1
|
|
|
|
The number supplied to TIMES is now sanity-checked for positivity,
|
|
and also may be greater than 64K (which previously didn't work on
|
|
16-bit systems).
|
|
|
|
Added Watcom C makefiles, and misc/pmw.bat, donated by Dominik Behr.
|
|
|
|
Added the INCBIN pseudo-opcode.
|
|
|
|
Due to the advent of the preprocessor, the [INCLUDE] and [INC]
|
|
directives have become obsolete. They are still supported in this
|
|
version, with a warning, but won't be in the next.
|
|
|
|
Fixed a bug in OBJ format, which caused incorrect object records to
|
|
be output when absolute labels were made global.
|
|
|
|
Updates to RDOFF subdirectory, and changes to outrdf.c.
|
|
|
|
0.95 released July 1997
|
|
-----------------------
|
|
|
|
Fixed yet another ELF bug. This one manifested if the user relied on
|
|
the default segment, and attempted to define global symbols without
|
|
first explicitly declaring the target segment.
|
|
|
|
Added makefiles (for NASM and the RDF tools) to build Win32 console
|
|
apps under Symantec C++. Donated by Mark Junker.
|
|
|
|
Added `macros.bas' and `insns.bas', QBasic versions of the Perl
|
|
scripts that convert `standard.mac' to `macros.c' and convert
|
|
`insns.dat' to `insnsa.c' and `insnsd.c'. Also thanks to Mark
|
|
Junker.
|
|
|
|
Changed the diassembled forms of the conditional instructions so
|
|
that JB is now emitted as JC, and other similar changes. Suggested
|
|
list by Ulrich Doewich.
|
|
|
|
Added `@' to the list of valid characters to begin an identifier
|
|
with.
|
|
|
|
Documentary changes, notably the addition of the `Common Problems'
|
|
section in nasm.doc.
|
|
|
|
Fixed a bug relating to 32-bit PC-relative fixups in OBJ.
|
|
|
|
Fixed a bug in perm_copy() in labels.c which was causing exceptions
|
|
in cleanup_labels() on some systems.
|
|
|
|
Positivity sanity check in TIMES argument changed from a warning to
|
|
an error following a further complaint.
|
|
|
|
Changed the acceptable limits on byte and word operands to allow
|
|
things like `~10111001b' to work.
|
|
|
|
Fixed a major problem in the preprocessor which caused seg-faults if
|
|
macro definitions contained blank lines or comment-only lines.
|
|
|
|
Fixed inadequate error checking on the commas separating the
|
|
arguments to `db', `dw' etc.
|
|
|
|
Fixed a crippling bug in the handling of macros with operand counts
|
|
defined with a `+' modifier.
|
|
|
|
Fixed a bug whereby object file formats which stored the input file
|
|
name in the output file (such as OBJ and COFF) weren't doing so
|
|
correctly when the output file name was specified on the command
|
|
line.
|
|
|
|
Removed [INC] and [INCLUDE] support for good, since they were
|
|
obsolete anyway.
|
|
|
|
Fixed a bug in OBJ which caused all fixups to be output in 16-bit
|
|
(old-format) FIXUPP records, rather than putting the 32-bit ones in
|
|
FIXUPP32 (new-format) records.
|
|
|
|
Added, tentatively, OS/2 object file support (as a minor variant on
|
|
OBJ).
|
|
|
|
Updates to Fox Cutter's Borland C makefile, Makefile.bc2.
|
|
|
|
Removed a spurious second fclose() on the output file.
|
|
|
|
Added the `-s' command line option to redirect all messages which
|
|
would go to stderr (errors, help text) to stdout instead.
|
|
|
|
Added the `-w' command line option to selectively suppress some
|
|
classes of assembly warning messages.
|
|
|
|
Added the `-p' pre-include and `-d' pre-define command-line options.
|
|
|
|
Added an include file search path: the `-i' command line option.
|
|
|
|
Fixed a silly little preprocessor bug whereby starting a line with a
|
|
`%!' environment-variable reference caused an `unknown directive'
|
|
error.
|
|
|
|
Added the long-awaited listing file support: the `-l' command line
|
|
option.
|
|
|
|
Fixed a problem with OBJ format whereby, in the absence of any
|
|
explicit segment definition, non-global symbols declared in the
|
|
implicit default segment generated spurious EXTDEF records in the
|
|
output.
|
|
|
|
Added the NASM environment variable.
|
|
|
|
From this version forward, Win32 console-mode binaries will be
|
|
included in the DOS distribution in addition to the 16-bit binaries.
|
|
Added Makefile.vc for this purpose.
|
|
|
|
Added `return 0;' to test/objlink.c to prevent compiler warnings.
|
|
|
|
Added the __NASM_MAJOR__ and __NASM_MINOR__ standard defines.
|
|
|
|
Added an alternative memory-reference syntax in which prefixing an
|
|
operand with `&' is equivalent to enclosing it in square brackets,
|
|
at the request of Fox Cutter.
|
|
|
|
Errors in pass two now cause the program to return a non-zero error
|
|
code, which they didn't before.
|
|
|
|
Fixed the single-line macro cycle detection, which didn't work at
|
|
all on macros with no parameters (caused an infinite loop). Also
|
|
changed the behaviour of single-line macro cycle detection to work
|
|
like cpp, so that macros like `extrn' as given in the documentation
|
|
can be implemented.
|
|
|
|
Fixed the implementation of WRT, which was too restrictive in that
|
|
you couldn't do `mov ax,[di+abc wrt dgroup]' because (di+abc) wasn't
|
|
a relocatable reference.
|