⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 由南京大学软件学院提供
💻 TXT
📖 第 1 页 / 共 2 页
字号:

			       README.TXT File

		   Release Notes for the Microsoft(R) MASM
		Professional Development System, Version 6.11

     (C) Copyright 1993, Microsoft Corporation.  All rights reserved.
					  
     This document contains release notes for the Microsoft MASM 
     Professional Development System, version 6.11. The information in 
     this document and in the Microsoft Advisor (online help) is more 
     up-to-date than that in the manuals.

     The printed documentation for MASM 6.11 has not changed from MASM 6.1. 
     The MASM 6.11 installation disks provide several important files that 
     include new or updated information for this release. They are:

     README.TXT =====> Contains documentation errata, system requirements,
		       information and tips on using MASM 6.11, and known 
		       assembler bugs.

     PENTIUM.TXT ====> Contains .586 and .586P directives information, 
		       descriptions of the new Intel(R) Pentium(TM) 
		       instructions, and a table of Pentium timings for all 
		       instructions.

     CV.TXT =========> Contains release notes for Microsoft CodeView(TM).

     ERRMSG.TXT =====> Contains updated information on 32-bit Linker errors,
		       ML error messages, and Microsoft DOSXNT MS-DOS 
		       Extender error messages.

     SAMPLES.TXT ====> Contains information about MASM samples for MS-DOS 
		       and Microsoft Windows 3.1.

     NTSAMPLE.TXT ===> Contains information about MASM samples for 
		       Microsoft Windows NT.

     SUPPORT.TXT ====> Contains updated Microsoft Product Support policies.
  

======================< README.TXT Table of Contents >=====================

     Part 1: Documentation Errata
     ----------------------------

     Part 2: System Requirements
     ---------------------------

     Part 3: Tips for Using MASM 6.1x
     --------------------------------
	     - ALIAS directive
	     - Assembling Files Generated by Compiler
	     - Building 32-Bit Applications
	       - 32-Bit Linking
	       - GROUP Directive and Flat-Model Programming
	       - Structure Packing Issues for Mixed Language Programming
	       - /WIN32 Switch for H2INC
	     - CD-ROM Not a Valid Target
	     - CMP Instruction Encoding
	     - Debugging MASM Applications under Visual C++, 32-Bit 
	       Edition, or Fortran PowerStation, 32-Bit Edition
	     - .FPO Directive
	     - INVOKE Command
	     - LINK and System Resources
	     - MOUSE.COM
	     - MS-DOS and Windows NT File Compatibility
	     - Multi-File Assembly with MASM.EXE
	     - NMAKE and NMAKER
	     - Response Files
	     - SAMPLES.TXT and NTSAMPLE.TXT
	     - Using Control-C to Halt Operation of MASM
	     - Using MASM 6.x Structures
	     - Visual C++ 1.0/Fortran PowerStation 1.0 Compatibility
	     - Working with MASM 5.1 Code
	     - Working With Microsoft BASIC Far Strings

     Part 4: Known Assembler Bugs
     ----------------------------
	     - Exiting from MS-DOS Critical Errors
	     - Expression Order in High-Level Conditionals
	     - Hexadecimal Constants
	     - Initializing Nested Structures
	     - Intersegment Near Jumps in Flat Model
	     - Span-Dependent Expressions used in Macros
	     - Span-Dependent Equates in Macros and EXTERNDEF ABS
	     - Span-Dependent Text Equates
	     - STRUCT and RECORD Initialization
	     - Using The /link /nologo Command Line Options



====================< Part 1: Documentation Errata >=======================


     Environment and Tools, Page xxiii: Microsoft Support Services
     -------------------------------------------------------------
     Microsoft Support Services information has been updated. See
     SUPPORT.TXT, in the directory in which you installed MASM, for
     the most current Microsoft support information and policies.
     
     
     Environment and Tools, Page 582: LIB Command Line Sample
     --------------------------------------------------------
     The following example, as it appears on page 582, is incorrect:

     LIB FIRST +SECOND, , THIRD

     It should instead read:

     LIB THIRD +FIRST +SECOND

     
     Environment and Tools, Page 649, 651: _syscall and __syscall
     ------------------------------------------------------------
     The H2INC documentation on pages 649 and 651 lists _syscall and
     __syscall as C keywords recognized by H2INC. These are not recognized,
     and should be removed.

     
     Environment and Tools, Page 819: Error Message A2156
     ----------------------------------------------------
     The value range given for the first parameter of the PAGE directive
     is incorrect; "...either 0 or a value in the range of 10-255" should
     read "...either 0 or a value in the range of 14-255."
     
     
     Reference, Page 12: ML Command-line Options /Cu and /Cx
     -------------------------------------------------------
     /Cu is not the default command-line option, but is indicated as such
     in the MASM 6.1 Reference. Instead, /Cx should be indicated as the 
     default.
     
     
     Reference, Page 98: LEA is no longer optimized
     ----------------------------------------------
     The MASM 6.1 Reference indicates that the LEA instruction is
     encoded as a MOV when the source operand is a direct memory address.

     In response to programmer requests, MASM 6.1x no longer performs this 
     optimization automatically.  The optimization can be performed by 
     using the OPATTR operator, as shown in the following macro:

	  MOVLEA MACRO Dest, Symbol
	  IF (OPATTR(Symbol)) AND 08h
	       MOV Dest, OFFSET Symbol
	  ELSE
	       LEA Dest, Symbol
	  ENDIF
	  ENDM

     
     Programmer's Guide, Page 156: Using an Emulator Library
     -------------------------------------------------------
     The sample code demonstrating floating-point instructions served
     by an emulator contains the directive .STARTUP. This directive
     should be removed.

     
     Programmer's Guide, Page 202: User-Defined Epilogues & Prologues
     ----------------------------------------------------------------
     The documentation for user-defined epilogue and prologue code reads
     "Your macro function must return the parmbytes parameter."  It
     should read "...the localbytes parameter."

     
     Programmer's Guide, Page 323: The C++/MASM Interface
     ----------------------------------------------------
     The second sentence in the third paragraph reads: "The linkage 
     specification applies only to called routines, not to external
     variables." It should read "The linkage specification applies to
     called routines and external variables." The last sentence in the
     same paragraph should be removed.
     
     
     Help for Runtime Error R6921
     ----------------------------
     The online help for runtime error R6921 reads "...Possibly the
     CONFIG.SYS file contained a line such as DEVICE=C:\OS\MM386.EXE..."
     The file name should read "C:\DOS\EMM386.EXE".


=================< Part 2: MASM 6.11 System Requirements >=================

     The following are system requirements for Microsoft MASM 6.11:

     - Personal computer using a 386 or higher processor running MS-DOS 
       version 3.3 or later, Windows version 3.1 or later, or Windows NT 
       version 3.1 or later.
     - 4 MB of available memory.
     - Hard disk with 10 MB available space.
     - One 3.5" high-density (1.44 MB) disk drive (3.5" low-density (720K) 
       or 5.25" high-density (1.2 MB) disks available separately with 
       coupon enclosed).

     To target Windows 3.1, you need one of the following:

     - Microsoft Windows Software Development Kit (SDK) 3.1.
     - Microsoft Visual C++ Development System, Standard or Professional 
       Edition.

     To target Windows NT, you need one of the following:

     - Microsoft Windows NT Software Development Kit (SDK).
     - Microsoft Visual C++ Development System, 32-Bit Edition.



====================< Part 3: Tips for Using MASM 6.11 >===================
     
     ALIAS directive
     ---------------
     The ALIAS directive is not included in the printed documentation
     for MASM 6.11. The ALIAS directive can be used for creating 
     libraries that allow the linker (LINK) to map an old function to 
     a new function. 

     Syntax:    ALIAS  <alias> = <actual-name>

     where alias is the alternate or alias name, and actual-name is
     the actual name of the function or procedure. The angle brackets
     are required.

     The ALIAS directive should be used with LINK 5.3 or later and LIB
     3.2 or later. At this time, ALIAS functions only with the 16-bit 
     linker.


     Assembling Files Generated by Compilers
     ------------------------------------------
     Many compilers support assembly-language output.  If you experience
     difficulty assembling the output of such compilers, you may need to
     assemble using the /Zm option.  In some cases (for instance, if the
     compiler inserts nondelimited comments or page numbers) it may be 
     necessary to edit the assembly-language output by hand.


     Building 32-bit Applications
     ----------------------------
     Following are a number of items you should keep in mind when
     building 32-bit applications with MASM 6.11. Examples of how to 
     create 32-bit applications can be found in the \SAMPLES\NTSAMPLE 
     subdirectory of the directory in which you installed MASM.

	  32-bit Linking
	  --------------
	  When you are creating a 32-bit application, you must link 
	  separately with a 32-bit linker. To prepare your object files 
	  for 32-bit linking, assemble using the following switches:
	  
	  - /c (assembles without linking)
	  - /coff (causes object files to be created in Windows NT-
	    compatible common object file format)
	    
	  After assembling, link with your 32-bit linker. Refer to the 
	  documentation included with your particular 32-bit linker for 
	  specific information and instructions. In addition, the sample
	  NT applications in \SAMPLES\NTSAMPLE demonstrate the use of
	  /c, /coff, and a 32-bit linker.

	  GROUP Directive and Flat-Model Programming
	  ------------------------------------------
	  The GROUP directive has no effect when used in 32-bit flat-model
	  programming. It is recommended that you not use the GROUP 
	  directive when programming in flat model.

	  Structure Packing Issues for Mixed Language Programming
	  -------------------------------------------------------
	  Microsoft MASM uses /Zp1 as it's default setting for structure 
	  packing; this means that structures are not packed. Other 
	  languages may use other default settings for packing. For 
	  example, Microsoft C/C++ compilers prior to Visual C++ 32-bit 
	  edition use /Zp2; Visual C++ 32-bit edition uses /Zp8 as the 
	  default. Modules built using different structure packing may not 
	  be able to share structure data items, so care must be taken 
	  when using structures in mixed language programs.

	  The packing size is a maximum, not a fixed, packing value. This 
	  means that a member must have a size equal to or larger than the 
	  packing limit before any packing is done. In many cases, using 
	  /Zp4 on assembly modules will allow them to work with other 
	  modules compiled with /Zp8 if none of the members have a size 
	  larger than 4 bytes. Doubles, long doubles, and member structures 
	  larger than 4 bytes will cause problems. If a structure contains 
	  members larger than 4 bytes you will need to pack the structure 
	  yourself by adding "dummy" data items.

	  /WIN32 Switch for H2INC
	  -----------------------
	  Use the /WIN32 switch with H2INC to convert C header files to 
	  NT-compatible MASM include files. When you use the /WIN32 switch,
	  C int data types are converted to the 4-byte assembler equivalent
	  DWORD (signed int data types are converted to SDWORD). Without 
	  the /WIN32 switch, H2INC converts int data types to 2-byte WORD 
	  (and signed int data types to SWORD).

    
     CD-ROM Not a Valid Target
     -------------------------
     A CD-ROM drive is not a valid installation target for MASM 6.11.


     CMP Instruction Encoding
     ------------------------
     MASM 6.1x uses a different encoding for the CMP <reg8>,<reg8> 
     instruction than MASM 6.0 did.  There is no difference in length or 
     processor timing.

     
     Debugging MASM Applications under Visual C++, 32-bit Edition, 
     or Fortran PowerStation, 32-bit Edition
     -------------------------------------------------------------
     When debugging a pure MASM application under the 32-bit editions of
     Visual C++ or Fortran PowerStation, you must link in the library 
     file (.LIB) provided with these high-level languages (LIBC.LIB in 
     Visual C++, LIBF.LIB with Fortran PowerStation), instead of the one 
     included with MASM 6.11. If you do not use the .LIB file included in 
     the high-level language, you will receive an "Access Violation" 
     error message when you attempt to run a MASM application in either 
     the 32-bit Visual C++ or 32-bit Fortran PowerStation integrated 
     development environment.
 
     
     .FPO Directive
     --------------
     The .FPO directive controls the emission of debug records to the
     .debug$F segment or section. This directive was originally included 
     with MASM386 and is not supported by MASM 6.11. If you are using 
     both MASM 6.11 and MASM386, the following allows you to continue to 
     implement the .FPO directive:

     IF @version LT 600
     .FPO
     ENDIF
     
     
     INVOKE Command
     --------------
     The MASM 6.x INVOKE command does not support transferring control
     between 16-bit and 32-bit code segments. When the assembler
     encounters an INVOKE command in a 16-bit segment, it assumes
     that the procedure being invoked is also in a 16-bit segment; if
     the assembler encounters an INVOKE in a 32-bit segment, it assumes
     that the invoked procedure is also in a 32-bit segment.

     To avoid this problem, push the necessary parameters on the stack
     and make the appropriate call instead of using INVOKE.


     LINK and System Resources

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -