MODIFIED
上传用户:yuppie_zhu
上传日期:2007-01-08
资源大小:535k
文件大小:8k
源码类别:

编译器/解释器

开发平台:

C/C++

  1. This file details changes since NASM 0.98p3.  All the releases in this
  2. file have been produced by H. Peter Anvin <hpa@zytor.com>.
  3. For release 0.98:
  4. * The documentation comment delimiter is # not #.
  5. * Allow EQU definitions to refer to external labels; reported by
  6.   Pedro Gimeno.
  7. * Re-enable support for RDOFF v1; reported by Pedro Gimeno.
  8. * Updated License file per OK from Simon and Julian.
  9. For release 0.98p9:
  10. * Update documentation (although the instruction set reference will
  11.   have to wait; I don't want to hold up the 0.98 release for it.)
  12. * Verified that the NASM implementation of the PEXTRW and PMOVMSKB
  13.   instructions is correct.  The encoding differs from what the Intel
  14.   manuals document, but the Pentium III behaviour matches NASM, not
  15.   the Intel manuals.
  16. * Fix handling of implicit sizes in PSHUFW and PINSRW, reported by
  17.   Stefan Hoffmeister.
  18. * Resurrect the -s option, which was removed when changing the
  19.   diagnostic output to stdout.
  20. For release 0.98p8:
  21. * Fix for "DB" when NASM is running on a bigendian machine.
  22. * Invoke insns.pl once for each output script, making Makefile.in
  23.   legal for "make -j".
  24. * Improve the Unix configure-based makefiles to make package
  25.   creation easier.
  26. * Included an RPM .spec file for building RPM (RedHat Package Manager)
  27.   packages on Linux or Unix systems.
  28. * Fix Makefile dependency problems.
  29. * Change src/rdsrc.pl to include sectioning information in info
  30.   output; required for install-info to work.
  31. * Updated the RDOFF distribution to version 2 from Jules; minor
  32.   massaging to make it compile in my environment.
  33. * Split doc files that can be built by anyone with a Perl interpreter off
  34.   into a separate archive.
  35. * "Dress rehearsal" release!
  36. For release 0.98p7:
  37. * Fixed opcodes with a third byte-sized immediate argument to not
  38.   complain if given "byte" on the immediate.
  39. * Allow %undef to remove single-line macros with arguments.  This
  40.   matches the behaviour of #undef in the C preprocessor.
  41. * Allow -d, -u, -i and -p to be specified as -D, -U, -I and -P for
  42.   compatibility with most C compilers and preprocessors.  This allows
  43.   Makefile options to be shared between cc and nasm, for example.
  44. * Minor cleanups.
  45. * Went through the list of Katmai instructions and hopefully fixed the
  46.   (rather few) mistakes in it.
  47. * (Hopefully) fixed a number of disassembler bugs related to ambiguous
  48.   instructions (disambiguated by -p) and SSE instructions with REP.
  49. * Fix for bug reported by Mark Junger: "call dword 0x12345678" should
  50.   work and may add an OSP (affected CALL, JMP, Jcc).
  51. * Fix for environments when "stderr" isn't a compile-time constant.
  52. For release 0.98p6:
  53. * Took officially over coordination of the 0.98 release; so drop
  54.   the p3.x notation. Skipped p4 and p5 to avoid confusion with John
  55.   Fine's J4 and J5 releases.
  56. * Update the documentation; however, it still doesn't include
  57.   documentation for the various new instructions.  I somehow wonder if
  58.   it makes sense to have an instruction set reference in the assembler
  59.   manual when Intel et al have PDF versions of their manuals online.
  60. * Recognize "idt" or "centaur" for the -p option to ndisasm.
  61. * Changed error messages back to stderr where they belong, but add an
  62.   -E option to redirect them elsewhere (the DOS shell cannot redirect
  63.   stderr.)
  64. * -M option to generate Makefile dependencies (based on code from Alex
  65.   Verstak.)
  66. * %undef preprocessor directive, and -u option, that undefines a
  67.   single-line macro.
  68. * OS/2 Makefile (Mkfiles/Makefile.os2) for Borland under OS/2; from
  69.   Chuck Crayne.
  70. * Various minor bugfixes (reported by):
  71.   - Dangling %s in preproc.c (Martin Junker)
  72. * THERE ARE KNOWN BUGS IN SSE AND THE OTHER KATMAI INSTRUCTIONS.  I am
  73.   on a trip and didn't bring the Katmai instruction reference, so I
  74.   can't work on them right now.
  75. * Updated the License file per agreement with Simon and Jules to
  76.   include a GPL distribution clause.
  77. For release 0.98p3.7:
  78. * (Hopefully) fixed the canned Makefiles to include the outrdf2 and
  79.   zoutieee modules.
  80. * Renamed changes.asm to changed.asm.
  81. For release 0.98p3.6:
  82. * Fixed a bunch of instructions that were added in 0.98p3.5 which had
  83.   memory operands, and the address-size prefix was missing from the
  84.   instruction pattern.
  85. For release 0.98p3.5:
  86. * Merged in changes from John S. Fine's 0.98-J5 release.  John's based
  87.   0.98-J5 on my 0.98p3.3 release; this merges the changes.
  88. * Expanded the instructions flag field to a long so we can fit more
  89.   flags; mark SSE (KNI) and AMD or Katmai-specific instructions as
  90.   such.
  91. * Fix the "PRIV" flag on a bunch of instructions, and create new
  92.   "PROT" flag for protected-mode-only instructions (orthogonal to if
  93.   the instruction is privileged!) and new "SMM" flag for SMM-only
  94.   instructions.
  95. * Added AMD-only SYSCALL and SYSRET instructions.
  96. * Make SSE actually work, and add new Katmai MMX instructions.
  97. * Added a -p (preferred vendor) option to ndisasm so that it can
  98.   distinguish e.g. Cyrix opcodes also used in SSE.  For example:
  99. ndisasm -p cyrix aliased.bin
  100. 00000000  670F514310        paddsiw mm0,[ebx+0x10]
  101. 00000005  670F514320        paddsiw mm0,[ebx+0x20]
  102. ndisasm -p intel aliased.bin
  103. 00000000  670F514310        sqrtps xmm0,[ebx+0x10]
  104. 00000005  670F514320        sqrtps xmm0,[ebx+0x20]
  105. * Added a bunch of Cyrix-specific instructions.
  106. For release 0.98p3.4:
  107. * Made at least an attempt to modify all the additional Makefiles (in
  108.   the Mkfiles directory).  I can't test it, but this was the best I
  109.   could do.
  110. * DOS DJGPP+"Opus Make" Makefile from John S. Fine.
  111. * changes.asm changes from John S. Fine.
  112. For release 0.98p3.3:
  113. * Patch from Conan Brink to allow nesting of %rep directives.
  114. * If we're going to allow INT01 as an alias for INT1/ICEBP (one of
  115.   Jules 0.98p3 changes), then we should allow INT03 as an alias for INT3
  116.   as well.
  117. * Updated changes.asm to include the latest changes.
  118. * Tried to clean up the <CR>s that had snuck in from a DOS/Windows
  119.   environment into my Unix environment, and try to make sure than
  120.   DOS/Windows users get them back.
  121. * We would silently generate broken tools if insns.dat wasn't sorted
  122.   properly.  Change insns.pl so that the order doesn't matter.
  123. * Fix bug in insns.pl (introduced by me) which would cause conditional
  124.   instructions to have an extra "cc" in disassembly, e.g. "jnz"
  125.   disassembled as "jccnz".
  126. For release 0.98p3.2:
  127. * Merged in John S. Fine's changes from his 0.98-J4 prerelease; see
  128.   http://www.csoft.net/cz/johnfine/
  129. * Changed previous "spotless" Makefile target (appropriate for distribution)
  130.   to "distclean", and added "cleaner" target which is same as "clean"
  131.   except deletes files generated by Perl scripts; "spotless" is union.
  132. * Removed BASIC programs from distribution.  Get a Perl interpreter
  133.   instead (see below.)
  134. * Calling this "pre-release 3.2" rather than "p3-hpa2" because of
  135.   John's contributions.
  136. * Actually link in the IEEE output format (zoutieee.c); fix a bunch of
  137.   compiler warnings in that file.  Note I don't know what IEEE output
  138.   is supposed to look like, so these changes were made "blind".
  139. For release 0.98p3-hpa:
  140. * Merged nasm098p3.zip with nasm-0.97.tar.gz to create a fully
  141.   buildable version for Unix systems (Makefile.in updates, etc.)
  142. * Changed insns.pl to create the instruction tables in nasm.h and
  143.   names.c, so that a new instruction can be added by adding it *only*
  144.   to insns.dat.
  145. * Added the following new instructions: SYSENTER, SYSEXIT, FXSAVE,
  146.   FXRSTOR, UD1, UD2 (the latter two are two opcodes that Intel
  147.   guarantee will never be used; one of them is documented as UD2 in
  148.   Intel documentation, the other one just as "Undefined Opcode" --
  149.   calling it UD1 seemed to make sense.)
  150. * MAX_SYMBOL was defined to be 9, but LOADALL286 and LOADALL386 are 10
  151.   characters long.  Now MAX_SYMBOL is derived from insns.dat.
  152. * A note on the BASIC programs included: forget them.  insns.bas is
  153.   already out of date.  Get yourself a Perl interpreter for your
  154.   platform of choice at:
  155. http://www.cpan.org/ports/index.html