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

📄 readme.txt

📁 masm611.zip 很好用的汇编程序呀
💻 TXT
📖 第 1 页 / 共 2 页
字号:
     ------------------------
     You may encounter the following error message when running LINK on 
     Windows 3.1:
	  
	  System resource exhausted. Abort, Retry, Fail?

     This may occur because LINK opens a large number of files, and the 
     buffer for SHARE may have been exceeded. To fix this problem, edit 
     your AUTOEXEC.BAT, setting the following values for SHARE:

	  /L:500 /F:4096

     
     MOUSE.COM
     ---------
     Microsoft Mouse Driver (MOUSE.COM) Version 8.20a is included with
     MASM 6.11. If you have a later version of the Microsoft Mouse
     installed on your system, it is recommended you use it instead of
     the Mouse Driver included with MASM 6.11.
     

     MS-DOS and Windows NT File Compatibility
     ----------------------------------------
     Files installed on the Microsoft Windows NT File System (NTFS) are 
     accessible only on Microsoft Windows NT.  Files installed on the 
     MS-DOS File System (FAT) are accessible on MS-DOS, Microsoft Windows, 
     or Microsoft Windows NT.


     Multi-File Assembly with MASM.EXE
     ---------------------------------
     When assembling multiple files with MASM.EXE, you must terminate the
     command-line with a semi-colon or a comma (for example, MASM *.asm;). 
     Failure to do this may cause the program to appear to hang if you are 
     running Microsoft NT. If this does occur, you can terminate the program 
     with Ctrl+C.
     

     NMAKE and NMAKER
     ----------------
     MASM 6.11 includes two versions of the NMAKE project management 
     utility.  NMAKER.EXE is a real-mode version of the utility.  
     NMAKE.EXE is a driver program which first loads the MS-DOS extender 
     DOSXNT into memory, and then runs NMAKER.EXE.  Using the NMAKE.EXE 
     driver will result in faster build times.  Some development tools 
     from other manufacturers may be incompatible with NMAKE.EXE.  If you 
     encounter incompatibilities, use NMAKER.EXE instead.


     Response Files
     --------------
     Information on response files is not included in the MASM 6.1 manuals;
     however, this information can be found in "ML Command Line Options" 
     in Online help.
     
     
     SAMPLES.TXT and NTSAMPLE.TXT
     ----------------------------
     SAMPLES.TXT contains information about the MASM samples for 
     MS-DOS/Windows; NTSAMPLE.TXT contains information about the 
     samples given for MASM for Windows NT. Both files include 
     information about additional tools you may need to build some 
     of the samples. If you choose to install the sample code during the 
     setup process, both SAMPLES.TXT and NTSAMPLE.TXT are included. 
     SAMPLES.TXT can be found in the \MASM611\SAMPLES subdirectory;
     NTSAMPLE.TXT can be found in the \MASM611\SAMPLES\NTSAMPLE
     subdirectory.


     Using Control-C to Halt Operation of MASM
     -----------------------------------------
     MS-DOS applications running under DPMI, such as ML.EXE, may not 
     respond immediately to pressing Control-C.  If you press Control-C, 
     and ^C appears on the screen but you are not returned to MS-DOS, 
     press the Enter key.


     Using MASM 6.x Structures
     -------------------------
     MASM 6.x supports a more powerful syntax for structure definition 
     and usage than previous versions of MASM.  This more powerful 
     syntax is enabled by default.  To use the older syntax, issue 
     the OPTION OLDSTRUCTS directive (see Appendix A of the MASM
     Programmer's Guide for more information).

     Note: use of nested structures requires the new MASM 6.x syntax.
     If you use nested structures, the OPTION OLDSTRUCTS directive will
     be ignored for the structure which is nested.


     Visual C++ 1.0/Fortran PowerStation 1.0 Compatibility
     -----------------------------------------------------
     There are specific steps you must take to use MASM 6.11 with 
     Microsoft Visual C++ 1.0 or Microsoft Fortran PowerStation 1.0.  
     If you wish to do mixed language programming with these products, it 
     is recommended that:

     - You install Visual C++/Fortran PowerStation and MASM 6.11 in 
       separate sub-directories.

     - You place \MSVC\BIN or \F32\BIN (your Visual C++ or Fortran 
       PowerStation sub-directory) first on your path statement before 
       \MASM611\BIN (your MASM 6.11 sub-directory).

     - You use NMAKE.EXE from MASM 6.11.  You can do this using various
       methods, such as moving or renaming NMAKE.EXE installed in \MSVC
       or \F32 thus causing the system to continue searching your path 
       and use the NMAKE.EXE in \MASM611.

     Optionally, for MASM 6.11/Visual C++ mixed programming, you may
     use NMAKER.EXE which is installed with both products.

     When using the LINK utility included with Visual C++ 1.0, you may 
     encounter one or both of the following warnings:

	  LINK : warning L4017: /r : unrecognized option name; option 
				     ignored
	  CVPACK : warning CK4007 : unrecognized option /x; option 
				    ignored
     
     These warnings do not affect the resulting program and should be
     ignored.
     
 
     Working with MASM 5.1 Code
     --------------------------
     MASM 6.x offers major advances over previous versions of MASM.
     Some of these improvements require changes that make MASM 5.1
     source code incompatible with MASM 6.x. To provide compatibility
     with code written for MASM 5.1, MASM 6.x allows you to access
     MASM 5.1 compatibility code in three ways:
     
	  - By using the conversion driver MASM.EXE. MASM.EXE converts
	    your existing command-line options to the new syntax, adds
	    the compatibility option /Zm, and invokes ML.EXE.
	  
	  - By using ML.EXE with the /Zm option. You also need to
	    convert command-line options to the new syntax.
	  
	  - By placing the statement OPTION M510 at the beginning of
	    each file. You also need to convert command-line options
	    to the new syntax.
	    
     In most cases, using the /Zm option or OPTION M510 will be the best
     solution for assembling existing code. If you prefer to modify your
     code so it can be assembled without /Zm or OPTION M510, do the
     following:
     
     1. Add the appropriate OPTION directives to your code.

	- Always add the following:

	  OPTION OLDSTRUCTS ; Supports old-style structures
	  OPTION OLDMACROS  ; Supports old-style macros
	  OPTION DOTNAME    ; Supports naming identifiers with
			    ; a leading dot [.]

	- If your code does not specify the .386 or .386P directive, add
	  the following:

	  OPTION EXPR16     ; Use 16-bit precision in expressions

	- If your code does not contain a .MODEL directive, add the
	  following:

	  OPTION OFFSET:SEGMENT ; Specifies that the OFFSET operator
				; defaults to segment-relative rather
				; than group-relative

	- If your code does not contain a .MODEL directive or if the
	  .MODEL directive does not specify a language, add the following:

	  OPTION NOSCOPED       ; Makes code labels global rather than
				; local to the procedure in which they
				; appear
	  OPTION PROC:PRIVATE   ; Makes code labels defined with PROC
				; local unless specified otherwise

     2. Once your code assembles with the OPTION directives, remove each 
	OPTION directive, one at a time, and reassemble the code after you 
	remove each one.

	Usually, it is best to remove the OPTION directives in the 
	opposite order in which you added them. In some cases, you may 
	decide that you prefer the MASM 5.x compatibility behavior 
	instead of the new MASM 6.x behavior. When this is true, do not 
	remove the corresponding OPTION statement from your code. 
	
     For more information on assembling MASM 5.1 code, see Appendix A 
     of the MASM Programmer's Guide.

     
     Working With Microsoft BASIC Far Strings
     ---------------------------------------------
     The BASIC runtime function StringAssign does not correctly handle
     strings of zero length.  Instead of calling StringAssign to convert
     a zero-length string, simply return a near pointer to a doubleword 
     with the value 0.



======================< Part 4: Known Assembler Bugs >====================

     Exiting from MS-DOS Critical Errors
     --------------------------------------------------
     MS-DOS critical errors, such as attempting to assemble a file on
     a drive which does not exist or is empty, produce the "Abort, Retry
     or Fail?" error message.  Selecting "Abort" when running MASM in 
     MS-DOS may cause memory to be corrupted.  This problem does not 
     occur when running MASM in Windows.  To avoid this problem, select
     "Retry" or "Fail", as appropriate.


     Expression Order in High-Level Conditionals
     --------------------------------------------------
     Comparisons in high-level conditionals cannot begin with a literal.
     For instance, this comparison causes an error:

	  .IF 1 == AX

     but this works properly:

	  .IF AX == 1


     Hexadecimal Constants
     ---------------------
     In some instances, ML might not generate the appropriate error
     message if it encounters a hexadecimal constant that does not have
     an appending "h". The following will help to ensure that hexadecimal 
     constants are properly represented:

     - Make sure that all hexadecimal constants have an appending "h".
     - Begin all hexadecimal constants with the numeral 0. This ensures
       that the compiler will generate the appropriate error message
       if it encounters a hexadecimal constant that does not end in "h".

     
     Initializing Nested Structures
     --------------------------------------------------
     If one structure is nested within another, the inner structure's
     initializer list must either be empty or include a comma between
     every field.  For example, the structure INFO declared on page 123 
     of the Programmer's Guide contains a structure of type DISKDRIVES,
     which in turn contains three BYTE fields.  An object of type INFO
     could be initialized as:

	  Info1 INFO { , , , , { }}      ; Inner initializer list is blank

     or as:

	  Info1 INFO { , , , , {1, 2, }} ; Commas for all three fields

     but not as:

	  Info1 INFO { , , , , {1, 2 }}  ; Error: missing last comma


     Intersegment Near Jumps in Flat Model
     -------------------------------------
     Intersegment near jumps do not work across files (externs) in flat 
     model. When programming in flat mode, make sure that all intersegment
     near jumps occur within the same file.
     
     
     Span-Dependent Expressions used in Macros
     --------------------------------------------------
     MASM 6.1x evaluates macro expressions only on the first pass of 
     assembly, but code and data are reevaluated on subsequent passes.
     Because of this, macro expressions which depend on the span between
     two addresses may not evaluate correctly. For instance, the
     following code will not evaluate correctly:

	  Label1:
	       JMP Label2
	  Label2:

	  REPEAT Label2 - Label1  ; Evaluates incorrectly
	       INC AX
	  ENDM

     View the listing file to determine if a questionable macro expression
     was evaluated as desired.


     Span-Dependent Equates in Macros and EXTERNDEF ABS
     ---------------------------------------------------
     The ABS operator causes an identifier to be exported as a relocatable
     unsized constant (see Programmer's Guide page 220).  If ABS is used
     with EXTERNDEF within a macro, and the constant being exported
     depends on the difference between two addresses, the constant may not
     be exported correctly.  In some cases, the listing file will show the
     correct value, but the value in the resulting .obj will be incorrect.
     For instance, the following code will not evaluate correctly:

	  EXTERNDEF TableSize:ABS  ; Will not be exported correctly

	  MAKETABLE MACRO
	  Table1 LABEL BYTE
	       DB 0, 1, 2
	  TableSize EQU $-Table1
	  ENDM

	  SEG1 SEGMENT
	  MAKETABLE
	  SEG1 ENDS

     To avoid this problem, either use the 'PUBLIC' directive in place of 
     'EXTERNDEF', or put a label before the equate, within the macro.


     Span-Dependent Text Equates
     --------------------------------------------------
     The TEXTEQU operator is evaluated on the first assembly pass.  If
     TEXTEQU is used with an expression that depends on the difference
     between two addresses, the resulting constant may be incorrect.
     For instance, the following code will not evaluate correctly:

	  Label1:
	       JMP Label2
	  Label2:
	  WrongNum TEXTEQU %Label2-Label1 ; WrongNum will be incorrect


     STRUCT and RECORD Initialization
     --------------------------------
     If a STRUCT containing a UNION is initialized incorrectly, it is
     possible that the compiler might not generate an appropriate error.
     If the UNION contains a RECORD, the STRUCT is initialized to the
     default value for the original UNION.
     
     
     Using The /link /nologo Command Line Options
     ---------------------------------------------------------
     The /link command line option for ML causes all following parameters
     to be passed to the linker.  If the /nologo command line option 
     is passed to the linker, the linker may parse other parameters
     incorrectly.  To avoid this problem, use the /nologo command line 
     switch for ML rather than passing it to the linker.  For instance,
     replace:

	  ML hello.asm /link /nologo MYLIB.LIB

     with:

	  ML /nologo hello.asm /link MYLIB.LIB

     Alternately, you may use the NMAKE utility to automate building
     your project.

⌨️ 快捷键说明

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