MODIFIED
资源名称:nasm-0.98.zip [点击查看]
上传用户:yuppie_zhu
上传日期:2007-01-08
资源大小:535k
文件大小:8k
源码类别:
编译器/解释器
开发平台:
C/C++
- This file details changes since NASM 0.98p3. All the releases in this
- file have been produced by H. Peter Anvin <hpa@zytor.com>.
- For release 0.98:
- * The documentation comment delimiter is # not #.
- * Allow EQU definitions to refer to external labels; reported by
- Pedro Gimeno.
- * Re-enable support for RDOFF v1; reported by Pedro Gimeno.
- * Updated License file per OK from Simon and Julian.
- For release 0.98p9:
- * Update documentation (although the instruction set reference will
- have to wait; I don't want to hold up the 0.98 release for it.)
- * Verified that the NASM implementation of the PEXTRW and PMOVMSKB
- instructions is correct. The encoding differs from what the Intel
- manuals document, but the Pentium III behaviour matches NASM, not
- the Intel manuals.
- * Fix handling of implicit sizes in PSHUFW and PINSRW, reported by
- Stefan Hoffmeister.
- * Resurrect the -s option, which was removed when changing the
- diagnostic output to stdout.
- For release 0.98p8:
- * Fix for "DB" when NASM is running on a bigendian machine.
- * Invoke insns.pl once for each output script, making Makefile.in
- legal for "make -j".
- * Improve the Unix configure-based makefiles to make package
- creation easier.
- * Included an RPM .spec file for building RPM (RedHat Package Manager)
- packages on Linux or Unix systems.
- * Fix Makefile dependency problems.
- * Change src/rdsrc.pl to include sectioning information in info
- output; required for install-info to work.
- * Updated the RDOFF distribution to version 2 from Jules; minor
- massaging to make it compile in my environment.
- * Split doc files that can be built by anyone with a Perl interpreter off
- into a separate archive.
- * "Dress rehearsal" release!
- For release 0.98p7:
- * Fixed opcodes with a third byte-sized immediate argument to not
- complain if given "byte" on the immediate.
- * Allow %undef to remove single-line macros with arguments. This
- matches the behaviour of #undef in the C preprocessor.
- * Allow -d, -u, -i and -p to be specified as -D, -U, -I and -P for
- compatibility with most C compilers and preprocessors. This allows
- Makefile options to be shared between cc and nasm, for example.
- * Minor cleanups.
- * Went through the list of Katmai instructions and hopefully fixed the
- (rather few) mistakes in it.
- * (Hopefully) fixed a number of disassembler bugs related to ambiguous
- instructions (disambiguated by -p) and SSE instructions with REP.
- * Fix for bug reported by Mark Junger: "call dword 0x12345678" should
- work and may add an OSP (affected CALL, JMP, Jcc).
- * Fix for environments when "stderr" isn't a compile-time constant.
- For release 0.98p6:
- * Took officially over coordination of the 0.98 release; so drop
- the p3.x notation. Skipped p4 and p5 to avoid confusion with John
- Fine's J4 and J5 releases.
- * Update the documentation; however, it still doesn't include
- documentation for the various new instructions. I somehow wonder if
- it makes sense to have an instruction set reference in the assembler
- manual when Intel et al have PDF versions of their manuals online.
- * Recognize "idt" or "centaur" for the -p option to ndisasm.
- * Changed error messages back to stderr where they belong, but add an
- -E option to redirect them elsewhere (the DOS shell cannot redirect
- stderr.)
- * -M option to generate Makefile dependencies (based on code from Alex
- Verstak.)
- * %undef preprocessor directive, and -u option, that undefines a
- single-line macro.
- * OS/2 Makefile (Mkfiles/Makefile.os2) for Borland under OS/2; from
- Chuck Crayne.
- * Various minor bugfixes (reported by):
- - Dangling %s in preproc.c (Martin Junker)
- * THERE ARE KNOWN BUGS IN SSE AND THE OTHER KATMAI INSTRUCTIONS. I am
- on a trip and didn't bring the Katmai instruction reference, so I
- can't work on them right now.
- * Updated the License file per agreement with Simon and Jules to
- include a GPL distribution clause.
- For release 0.98p3.7:
- * (Hopefully) fixed the canned Makefiles to include the outrdf2 and
- zoutieee modules.
- * Renamed changes.asm to changed.asm.
- For release 0.98p3.6:
- * Fixed a bunch of instructions that were added in 0.98p3.5 which had
- memory operands, and the address-size prefix was missing from the
- instruction pattern.
- For release 0.98p3.5:
- * Merged in changes from John S. Fine's 0.98-J5 release. John's based
- 0.98-J5 on my 0.98p3.3 release; this merges the changes.
- * Expanded the instructions flag field to a long so we can fit more
- flags; mark SSE (KNI) and AMD or Katmai-specific instructions as
- such.
- * Fix the "PRIV" flag on a bunch of instructions, and create new
- "PROT" flag for protected-mode-only instructions (orthogonal to if
- the instruction is privileged!) and new "SMM" flag for SMM-only
- instructions.
- * Added AMD-only SYSCALL and SYSRET instructions.
- * Make SSE actually work, and add new Katmai MMX instructions.
- * Added a -p (preferred vendor) option to ndisasm so that it can
- distinguish e.g. Cyrix opcodes also used in SSE. For example:
- ndisasm -p cyrix aliased.bin
- 00000000 670F514310 paddsiw mm0,[ebx+0x10]
- 00000005 670F514320 paddsiw mm0,[ebx+0x20]
- ndisasm -p intel aliased.bin
- 00000000 670F514310 sqrtps xmm0,[ebx+0x10]
- 00000005 670F514320 sqrtps xmm0,[ebx+0x20]
- * Added a bunch of Cyrix-specific instructions.
- For release 0.98p3.4:
- * Made at least an attempt to modify all the additional Makefiles (in
- the Mkfiles directory). I can't test it, but this was the best I
- could do.
- * DOS DJGPP+"Opus Make" Makefile from John S. Fine.
- * changes.asm changes from John S. Fine.
- For release 0.98p3.3:
- * Patch from Conan Brink to allow nesting of %rep directives.
- * If we're going to allow INT01 as an alias for INT1/ICEBP (one of
- Jules 0.98p3 changes), then we should allow INT03 as an alias for INT3
- as well.
- * Updated changes.asm to include the latest changes.
- * Tried to clean up the <CR>s that had snuck in from a DOS/Windows
- environment into my Unix environment, and try to make sure than
- DOS/Windows users get them back.
- * We would silently generate broken tools if insns.dat wasn't sorted
- properly. Change insns.pl so that the order doesn't matter.
- * Fix bug in insns.pl (introduced by me) which would cause conditional
- instructions to have an extra "cc" in disassembly, e.g. "jnz"
- disassembled as "jccnz".
- For release 0.98p3.2:
- * Merged in John S. Fine's changes from his 0.98-J4 prerelease; see
- http://www.csoft.net/cz/johnfine/
- * Changed previous "spotless" Makefile target (appropriate for distribution)
- to "distclean", and added "cleaner" target which is same as "clean"
- except deletes files generated by Perl scripts; "spotless" is union.
- * Removed BASIC programs from distribution. Get a Perl interpreter
- instead (see below.)
- * Calling this "pre-release 3.2" rather than "p3-hpa2" because of
- John's contributions.
- * Actually link in the IEEE output format (zoutieee.c); fix a bunch of
- compiler warnings in that file. Note I don't know what IEEE output
- is supposed to look like, so these changes were made "blind".
- For release 0.98p3-hpa:
- * Merged nasm098p3.zip with nasm-0.97.tar.gz to create a fully
- buildable version for Unix systems (Makefile.in updates, etc.)
- * Changed insns.pl to create the instruction tables in nasm.h and
- names.c, so that a new instruction can be added by adding it *only*
- to insns.dat.
- * Added the following new instructions: SYSENTER, SYSEXIT, FXSAVE,
- FXRSTOR, UD1, UD2 (the latter two are two opcodes that Intel
- guarantee will never be used; one of them is documented as UD2 in
- Intel documentation, the other one just as "Undefined Opcode" --
- calling it UD1 seemed to make sense.)
- * MAX_SYMBOL was defined to be 9, but LOADALL286 and LOADALL386 are 10
- characters long. Now MAX_SYMBOL is derived from insns.dat.
- * A note on the BASIC programs included: forget them. insns.bas is
- already out of date. Get yourself a Perl interpreter for your
- platform of choice at:
- http://www.cpan.org/ports/index.html