Masm611
所属分类:汇编语言
开发工具:Asm
文件大小:4766KB
下载次数:1
上传日期:2018-05-17 22:05:43
上 传 者:
cookidog
说明: 微软编译汇编文件(ASM)的工具,蛮好用的
(microsoft compile assemler (asm) 's tool,very good)
文件列表:
MASM611 (0, 2000-01-31)
MASM611\DISK3 (0, 2000-01-31)
MASM611\DISK3\BIN (0, 2000-01-31)
MASM611\DISK3\BIN\MASM.EX$ (28230, 1993-08-19)
MASM611\DISK3\BIN\MASM.GR$ (1639, 1992-08-19)
MASM611\DISK3\BIN\MOUSE.CO$ (27407, 1992-03-10)
MASM611\DISK3\BIN\MSD.EX$ (154866, 1992-03-05)
MASM611\DISK3\BIN\MSD.TX$ (3537, 1990-11-16)
MASM611\DISK3\BIN\NEW-SYS.IN$ (399, 1992-11-09)
MASM611\DISK3\BIN\NMAKE.EX$ (26161, 1993-08-18)
MASM611\DISK3\BIN\NMAKER.EX$ (53167, 1992-03-10)
MASM611\DISK3\BIN\OEM08.FO$ (2339, 1992-03-19)
MASM611\DISK3\BIN\OEM10.FO$ (2568, 1992-03-19)
MASM611\DISK3\BIN\PWB.EX$ (300492, 1992-06-14)
MASM611\DISK3\BIN\PWB.IC$ (591, 1992-02-03)
MASM611\DISK3\BIN\PWB.PI$ (184, 1992-10-15)
MASM611\DISK3\BIN\PWBBASIC.XX$ (8258, 1992-03-07)
MASM611\DISK3\BIN\PWBC.XX$ (22028, 1993-03-02)
MASM611\DISK3\BIN\PWBFORT.XX$ (13425, 1992-03-07)
MASM611\DISK3\BIN\PWBHELP.MX$ (23935, 1992-03-07)
MASM611\DISK3\BIN\PWBMASM.MX$ (8157, 1992-11-12)
MASM611\DISK3\BIN\PWBPROF.XX$ (26255, 1992-01-23)
MASM611\DISK3\BIN\PWBRMAKE.EX$ (5644, 1992-03-07)
MASM611\DISK3\BIN\PWBROWSE.MX$ (47773, 1992-03-07)
MASM611\DISK3\BIN\PWBUTILS.MX$ (12310, 1993-03-02)
MASM611\DISK3\BIN\QH.EX$ (44593, 1992-07-09)
MASM611\DISK3\BIN\QH.IC$ (503, 1992-01-15)
MASM611\DISK3\BIN\RAMDRIVE.SY$ (3287, 1992-03-05)
MASM611\DISK3\BIN\RC.BA$ (306, 1992-10-01)
MASM611\DISK3\BIN\RCVCOM.EX$ (42657, 1992-07-17)
MASM611\DISK3\BIN\RCVWCOM.EX$ (16665, 1992-07-17)
MASM611\DISK3\BIN\RM.EX$ (10019, 1992-01-21)
MASM611\DISK3\BIN\SBRPACK.EX$ (10748, 1992-03-07)
MASM611\DISK3\BIN\SHD1.DL$ (21567, 1992-07-17)
MASM611\DISK3\BIN\SHW0.DL$ (22551, 1992-07-17)
MASM611\DISK3\BIN\SMARTDRV.DO$ (5402, 1992-03-18)
MASM611\DISK3\BIN\SMARTDRV.EX$ (14009, 1992-03-05)
MASM611\DISK3\BIN\TLD1COM.DL$ (5647, 1992-07-17)
MASM611\DISK2 (0, 2000-01-31)
MASM611\DISK2\BIN (0, 2000-01-31)
... ...
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 ***9, 651: _syscall and __syscall
------------------------------------------------------------
The H2INC documentation on pages ***9 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 ***: 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
=
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 ,
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
------------------------
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 inclu ... ...
近期下载者:
相关文件:
收藏者: