home *** CD-ROM | disk | FTP | other *** search
- Microsoft Macro Assembler - White Paper
-
-
-
-
-
-
-
-
- ────────────────────────────────────────────────────────────────────────────
- Microsoft (R) Macro Assembler - White Paper
-
- Version 6.0
- ────────────────────────────────────────────────────────────────────────────
-
-
- For MS (R) OS/2 and MS-DOS (R) Operating Systems
-
-
-
-
-
-
-
-
- Microsoft Corporation
-
- This technical overview is for informational purposes
- only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.
-
- (C) Copyright Microsoft Corporation, 1991.
- All rights reserved.
- Printed in the United States of America.
-
- Microsoft, the Microsoft logo, MS, MS-DOS, and CodeView
- are registered trademarks and Making it all make sense and
- Windows are trademarks of Microsoft Corporation.
-
- U.S. Patent No. 4,955,066
-
- i486 is a trademark of Intel Corporation.
-
- IBM is a registered trademark of International Business
- Machines Corporation.
-
-
-
-
- Table of Contents
- ────────────────────────────────────────────────────────────────────────────
-
-
-
- Product Overview
-
- Revolutionary New Assembler
- Programmer's WorkBench
- Integrated Documentation
-
- The MASM 6.0 Assembler
-
- Faster Assembly
- Built-In Jump Extensions and Optimizations
- Convenient Format for Procedures and Procedure Prototypes
- Automatic Conversion of C Header Files to MASM Include Files
- New Data Types
- Enhanced Macro Capabilities
- Easy-To-Use Decision and Loop Constructs
- Expanded DOS and OS/2 Support
- New 80486 and FLAT Model Support
- Improved Support for Multiple-Module Programming
- Complete BNF Language Definition
-
- Programmer's WorkBench
-
- Full-Featured Editor
- Enhanced CodeView(R) Debugger
- Powerful Source Browser
- Information-Packed Online Reference System
-
- Integrated Documentation
-
- Microsoft Advisor Online Reference System
- Installing and Using the Professional Development System
- Microsoft Macro Assembler Programmer's Guide
- Microsoft Macro Assembler Reference
-
- Conclusion
-
-
- System Requirements
-
-
-
-
- Product Overview
- ────────────────────────────────────────────────────────────────────────────
-
- The Microsoft Macro Assembler has long been the industry standard for fast
- and efficient assemblers. Writing assembly-language code, however, has been
- slow and tedious work. The new features of the Microsoft Macro Assembler
- version 6.0 Professional Development System (hereafter referred to as MASM
- 6.0) make it easy for you to be fast and efficient when you program. For the
- first time, you get the convenience of high-level language coding as well as
- the 50 to 300% performance boost that assembly language provides over
- high-level language routines.
-
- Why? Because MASM 6.0 is not an evolutionary product that adds a few new
- features. Instead it is a revolutionary new version of MASM that reduces
- your coding time, simplifies code maintenance, and delivers exceptional
- performance.
-
-
- Revolutionary New Assembler
-
- Further details on these and other time-saving new features begin on page 5.
-
-
- MASM 6.0 boosts your productivity by handling numerous repetitive
- programming tasks for you, making other tasks easier, and providing many new
- capabilities. For example, MASM 6.0
-
-
- ■ Increases assembly speed, eliminates phase errors and unnecessary NOP
- statements, and generates optimal code for jumps by using n-pass
- assembly technology
-
- ■ Checks argument types and automatically generates the code to push
- arguments when you use PROTO to define a procedure prototype and
- INVOKE to call the procedure
-
- ■ Simplifies external symbol declaration and include-file development
-
- ■ Allows macro functions, macros with variable numbers of arguments, and
- other powerful new macro capabilities
-
- ■ Increases the functionality of structures and types by allowing nested
- structures, pointer types, and unions
-
- ■ Converts your C-language header files to MASM include files with the
- H2INC utility
-
- ■ Introduces intuitive language constructs─.IF, .WHILE, and .REPEAT─that
- automatically generate optimized instructions for run-time decisions
- and loops
-
- ■ Generates DOS* or OS/2= module-initialization code automatically
-
- ■ Provides new extensions to simplified segment directives that make it
- easier to set up complicated segment models
-
- ■ Implements the 80486 instruction set and supports flat model for
- 32-bit operating systems
-
- ■ Supports tiny memory model so you can produce .COM executable files
-
- ■ Automates assembling and linking with a one-step build process
-
- ■ Allows Windows programs to relocate code segments, since you can use
- the new LROFFSET operator to generate a loader-resolved offset
-
- ■ Includes the Microsoft Advisor with online help for MASM and utilities
-
-
- * DOS refers to the MS-DOS(R) and PC DOS operating systems. = Herein
- OS/2 refers to the operating system jointly developed by Microsoft and IBM.
-
-
-
- Programmer's WorkBench
-
- The Programmer's WorkBench (PWB) is a complete, self-contained development
- environment. With PWB, you can write, edit, get help on, build, debug, and
- execute your programs without ever leaving the environment. PWB provides
- access to all your Microsoft utilities and compilers such as Microsoft C
- version 6.0, Basic version 7.1, and COBOL version 4.0. See Figure 1.
-
- (This figure may be found in the printed book.)
-
- PWB includes the Source Browser for navigating through your program's code
- and data structures. The powerful keyboard or mouse-driven editor has
- extensive macro capabilities. And the Microsoft Advisor provides online
- help. See page 11 for more about PWB.
-
- The Microsoft CodeView(R) window-oriented debugger, also accessible from
- within PWB, can debug larger programs than before. You can also view several
- source-code and memory locations simultaneously.
-
-
- Integrated Documentation
-
- MASM 6.0 includes three manuals and online help.
-
- MASM 6.0 provides both online and printed documentation. The Microsoft
- Advisor, the online reference system, contains information on how to use
- MASM 6.0, PWB, CodeView, LINK, NMAKE, the editor, and all other utilities.
-
- For a quick start on using MASM 6.0 and PWB, read Installing and Using the
- Microsoft Professional Development System. This manual shows how to install
- the assembler, manage multiple-module projects with PWB, and access online
- help.
-
- The documentation also includes a revised Programmer's Guide. This manual
- illustrates all the new language features of MASM 6.0 and explains the
- advanced features of CodeView, PWB, and other MASM 6.0 utilities.
-
- The Microsoft Macro Assembler Reference provides quick access to syntax and
- command-line options for the assembler and utilities. See page 14 for more
- information about MASM 6.0 documentation.
-
-
-
- The MASM 6.0 Assembler
- ────────────────────────────────────────────────────────────────────────────
-
- The MASM 6.0 assembler increases your productivity in several ways. The
- highlevel-language interface for procedures simplifies multiple-module,
- mixed-language, and OS/2 programming. Macros are more straightforward to
- write and maintain. Code-generating directives shorten programming time. And
- new options maximize compatibility with MASM 5.1.
-
- MASM 6.0's new features are designed to be as intuitive as
- high-level-language statements. With MASM 6.0, your code will be noticeably
- easier to write, read, and maintain.
-
-
- Faster Assembly
-
- More efficient assembling means greatly improved performance.
-
- MASM 6.0 eliminates phase errors and assembler-generated NOP statements by
- using n-pass assembly and highly efficient memory-management techniques.
- With n-pass assembly, the first pass is similar to that of traditional
- assemblers. During this pass, however, MASM 6.0 keeps enough information on
- each instruction so that, should any instruction change size on subsequent
- passes, the assembler can make appropriate adjustments. Because this
- algorithm allows instructions to shrink or grow, MASM 6.0 never generates
- NOP statements or phase errors.
-
- MASM 6.0 continues passing over internal representations of code until every
- instruction is of optimal length. As a result, it generates optimized code
- for all instructions, including jumps. And because it references the source
- files only once, it assembles two to three times faster than MASM 5.1.
-
-
- Built-In Jump Extensions and Optimizations
-
- MASM 6.0 generates optimal encodings.
-
- Built-in "smart" jump extensions and optimizations simplify your
- programming. You do not have to specify a distance operator to take
- advantage of automatic optimization for unconditional jumps. The assembler
- automatically determines the smallest encoding possible for the direct
- unconditional jump. Additionally, MASM 6.0 optimizes far calls when the
- destination is in the current segment by pushing the CS register and
- generating a NEAR call. This is functionally equivalent, but is faster and
- one byte smaller.
-
- MASM 6.0 also lengthens conditional jumps automatically. If the conditional
- jump specifies or implicitly requires a distance other than SHORT, MASM
- automatically generates the necessary comparison and unconditional jump to
- the destination. You can control these optimizations with the OPTION
- directive and with menu or command-line options.
-
- For example, the destination for this jump is more than 128 bytes away:
-
- mov ax, cx
- jz skip
- .
- . ; (More than 128 bytes of code here)
- .
- skip:
-
- Note the unconditional jump in the assembler-generated code:
-
- mov ax, cx
- jnz temp$1
- jmp skip
- temp$1:
- .
- . ; (More than 128 bytes of code here)
- .
- skip:
-
- The listing file shows the generated instructions and the resulting warning
- message:
-
- 002C 8B C1 mov ax, cx
- 002E 75 03 E9 00C0 jz skip
- jumptest.asm(63): warning A6003: conditional jump lengthened
-
-
- Convenient Format for Procedures and Procedure Prototypes
-
- The new INVOKE and PROTO directives create a high-level interface for
- procedures to simplify your MASM, OS/2, mixed-language, and Microsoft
- Windows(tm) graphicalenvironment programming. The PROTO directive defines
- procedure prototypes. Like C-language function prototypes, MASM prototypes
- inform the assembler of types and numbers of arguments so the assembler can
- check for errors in the procedure call. The INVOKE directive calls the
- procedure, converting arguments to the expected type and pushing parameters
- according to the correct calling conventions. The VARARG keyword allows a
- variable number of arguments to be passed to the procedure (see Figure 2).
-
- (This figure may be found in the printed book.)
-
- In addition to the new directives for procedure prototypes and procedure
- calls, MASM 6.0 provides new support for the customizing of setup and
- teardown for procedure stack frames. You can write procedure prologue and
- epilogue code for Windows programs or for other special calling conventions,
- and call them repeatedly─as easily as you can call a macro.
-
-
- Automatic Conversion of C Header Files to MASM Include Files
-
- H2INC helps port a program prototyped in C to MASM.
-
- The H2INC utility translates C header files into MASM-compatible include
- files. Now you can more easily write programs that mix C code and MASM code
- with global data structures. H2INC translates data declarations, function
- prototypes, and simple #define directives, but not C statements that compile
- into data or executable code.
-
- This example shows several C declarations and the MASM code that H2INC
- produces:
-
- C Code H2INC Translation
- ────────────────────────────────────────────────────────────────────────────
- #define CORNERS 4 CORNERS EQU 4t
-
- int my_var; EXTERNDEF C my_var:SWORD
-
- struct tagName { tagName STRUCT 2t
- int i; i SWORD ?
- }; tagName ENDS
-
- long pascal my_func3 (int x); @proto_0 TYPEDEF PROTO PASCAL :SWORD
- my_func3 PROTO @proto_0
-
-
- Because MASM supports many new high-level data types, data-type information
- is not lost when you translate C data to MASM, as the next section explains.
-
-
-
- New Data Types
-
- New MASM data types resemble those in high-level languages.
-
- Now you can use high-level data types in assembly language. Types and
- pointers can be defined with TYPEDEF in the same way they can be defined in
- C. In addition, the CodeView debugger recognizes all MASM 6.0 data types, as
- well as pointers and the type of data they point to.
-
- MASM 6.0 also supports signed types defined with SBYTE, SWORD, and SDWORD;
- floating-point data types defined with REAL4, REAL8, and REAL10; and
- binary-coded decimals defined with TBYTE. CodeView displays values of type
- REAL4, REAL8, and REAL10 as floating-point numbers, not hexadecimal fields.
-
-
- Enhanced syntax for defining and using structures, and implementing nested
- structures and unions, mean these types closely mirror their C counterparts.
-
-
-
- Enhanced Macro Capabilities
-
- Macros are more straightforward to write and maintain.
-
- The new directives in MASM 6.0 make complex macros cleaner and easier to
- write by accommodating variable numbers of arguments, macro functions,
- definitions of text equates, and loop constructs:
-
-
- ■ Variable, required, and default arguments. MASM 5.1 ignores extra
- arguments passed to macros. MASM 6.0 provides the VARARG keyword for
- simplifying macro calls by allowing a macro to process any number of
- arguments. Specifying required or default arguments allows better
- error checking.
-
- ■ Macro functions. At assembly time, macro functions can return a text
- value using EXITM. Predefined macro string functions can concatenate
- strings, return the size of a string, find a substring in a string, or
- return the position of a substring within a string.
-
- ■ Text equates. The TEXTEQU directive for defining text macros allows
- greater functionality and consistency than EQU provides. For example,
- TEXTEQU can assign the value returned by a macro function to a text
- equate.
-
- ■ Directives for loops in macros. Now there are more ways to implement
- loops inside macros. Within a macro definition, WHILE repeats assembly
- as long as a condition remains true. Other macro loop directives─FOR,
- FORC, and REPEAT─also generate loops in macros.
-
-
- This macro function takes one required argument and accepts a variable
- number of arguments:
-
- @ArgI MACRO index:REQ, arglist:VARARG
- LOCAL count, retstr
- count = 0
- FOR arg, <arglist>
- count = count + 1
- IF count EQ index
- retstr TEXTEQU <arg>
- ENDIF
- ENDM
- EXITM retstr
- ENDM
-
-
- Easy-To-Use Decision and Loop Constructs
-
- Code-generating directives shorten programming time.
-
- The high-level control structures new to MASM 6.0─.IF, .WHILE, and .REPEAT─
- automatically generate MASM loop and compare instructions. These new
- directives are similar to the if, while, and repeat statements of C or
- Pascal. They make your assembly modules easy to code, read, and maintain.
- You can also use the new .BREAK and .CONTINUE directives to interrupt loop
- execution. See Figure 3.
-
- (This figure may be found in the printed book.)
-
- In the listing file, asterisks mark the automatically generated code:
-
- 0017 B9 000A mov cx, 10
- .REPEAT
- 001A *@C0001:
- 001A B4 08 mov ah, 08h
- 001C CD 21 int 21h
- .BREAK .IF al == 13
- 001E 3C 0D * cmp al, 00Dh
- 0020 74 10 * je @C0003
- .CONTINUE .IF (al < '0') || (al > '9')
- 0022 3C 30 * cmp al, '0'
- 0024 72 0A * jb @C0002
- 0026 3C 39 * cmp al, '9'
- 0028 77 06 * ja @C0002
-
- 002A 8A D0 mov dl, al
- 002C B4 02 mov ah, 02h
- 002E CD 21 int 21h
- .UNTILCXZ
- 0030 *@C0002:
- 0030 E2 E8 * loop @C0001
- 0032 *@C0003:
-
-
- Expanded DOS and OS/2 Support
-
- You no longer have to write repetitive module-initialization code.
-
- The new .STARTUP and .EXIT directives eliminate the need to write repetitive
- module-initialization and exit code for DOS and OS/2 modules. If you specify
- OS_DOS or OS_OS2 as your target operating system in the .MODEL statement,
- the assembler automatically generates the appropriate code.
-
- Also new to MASM 6.0 is tiny-model support for producing .COM executables
- under DOS. And for Windows programming, the LROFFSET operator generates a
- loaderresolved offset to allow Windows to relocate code segments.
-
-
- New 80486 and FLAT Model Support
-
- You can design code for the next generation of systems today.
-
- MASM 6.0 supports all the new i486 instructions. And for 32-bit operating
- systems, the assembler provides flat memory model. Flat model provides four
- gigabytes of linear addressing space, eliminating the need for segmentation
- considerations when programming for 386-compatible operating systems.
-
-
- Improved Support for Multiple-Module Programming
-
- One directive replaces PUBLIC and EXTRN.
-
- MASM 6.0 simplifies external declarations for shared data and procedures in
- multiple-module and mixed-language programs. The new EXTERNDEF directive
- declares procedures and symbols as both public and external. EXTERNDEF makes
- it easy to maintain global definitions in include files shared by all source
- modules within a project.
-
-
- Complete BNF Language Definition
-
- The BNF clearly defines MASM syntax.
-
- MASM 6.0 includes a complete language grammar in an augmented BNF format.
- BNF stands for Backus-Naur Form, a standard format for language grammars.
- You can use the BNF to determine the exact syntax for any language
- component. The BNF grammar clearly defines recursive definitions and shows
- all the available options for each language element.
-
- An excerpt from the grammar:
-
- ╓┌─────────────────────────────────┌─────────────────────────────────────────╖
- ────────────────────────────────────────────────────────────────────────────
- procDir procId PROC « pOptions » « <
- macroArgList > »
- « usesRegs » « procParmList »
-
- procId id
-
- ────────────────────────────────────────────────────────────────────────────
- id alpha
- | id alpha
- | id decdigit
-
- pOptions « distance » « langType » « oVisibility
- »
-
- distance nearfar
- | NEAR16 | NEAR32 | FAR16 | FAR32
-
- langType C | PASCAL | FORTRAN | BASIC
- | SYSCALL | STDCALL
-
- oVisibility PUBLIC | PRIVATE | EXPORT
-
- macroArgList macroArg
- | macroArgList , macroArg
-
- macroArg % constExpr
- ────────────────────────────────────────────────────────────────────────────
- macroArg % constExpr
- | % textMacroId
- | % macroFuncId ( macroArgList )
- | string
- | arbitraryText
- | < arbitraryText >
-
- usesRegs USES regList
-
- regList register
- | regList register
-
- procParmList « « , « ;; » » parmList »
- « « , « ;; » » parmId :VARARG»
-
-
-
-
-
- Programmer's WorkBench
- ────────────────────────────────────────────────────────────────────────────
-
- Now you can write, edit, build, debug, and run programs in one environment.
-
-
- The PWB environment provides an intuitive interface and easy access to the
- assembler, to your MASM 6.0 files, to utilities, to other Microsoft
- compilers, and to online reference documentation. You can switch from
- editing to debugging to looking up statement syntax by selecting a menu or
- dialog-box item.
-
- With PWB 1.1, you select the main source language of your project from
- languages you have installed under PWB. The main language you choose
- determines the build options available. PWB then simplifies program
- assembling and building by providing background assembly (under OS/2),
- automatic makefile generation, and automatic dependency checking.
-
- Predefined defaults for build options include DOS executable files, Windows
- applications, OS/2 Presentation Manager applications, and OS/2 dynamic-link
- libraries (DLLs).
-
- Figure 4 shows how easily you can set MASM assembler options from within
- PWB. Notice that you can select target options instead of typing a series of
- command-line options.
-
- (This figure may be found in the printed book.)
-
- PWB minimizes editing and debugging time, as well as build time, by
- incorporating an editor, debugger, source browser, and online reference
- system.
-
-
- Full-Featured Editor
-
- The PWB Editor is a full-featured programmer's editor with all the
- capabilities that professionals expect:
-
-
- ■ Multiple windows
-
- ■ Mouse and keyboard support
-
- ■ Fast file navigation and bookmarks
-
- ■ Convenient and powerful search capability
-
- ■ Multiple levels of Undo/Redo
-
- ■ Flexible configuration options
-
- ■ Recordable macros
-
-
- You can select any of these editor functions from menus or with key
- combinations. The Microsoft Advisor provides instructions for using the
- editor.
-
-
- Enhanced CodeView(R) Debugger
-
- In addition to its improved user interface, the CodeView debugger gives you
- a dynamic record and replay feature for recreating debugging sessions. It
- reduces debugging effort by providing complete access to pointers, arrays,
- structures, and coprocessor status.
-
- CodeView adds other key improvements:
-
-
- ■ Multiple source and memory windows
-
- ■ Improved debugging for DLLs and multithread programs
-
- ■ New capability for debugging .COM files under DOS
-
- ■ No restrictions on sizes of DOS programs for debugging under CodeView
-
-
- A system with an 80286 or 80386 processor and at least 384K of extended
- memory can now run CodeView in extended memory, using less than 12K of
- conventional memory. CodeView also supports the LIM 4.0 Expanded Memory
- Specification (EMS) and can use Virtual Control Program Interface (VCPI)
- memory if it's available. VCPI is an applications programming interface
- (API) provided by various drivers, including HIMEM.SYS, which is included
- with MASM 6.0.
-
-
- Powerful Source Browser
-
- MASM 6.0 includes the Source Browser made popular with the Microsoft C 6.0,
- Basic 7.1, and COBOL 4.0 compilers. You can use the Browser to find any
- symbol definition, find all references to that symbol, and see where
- variables are used or from where functions are called. See Figure 5.
-
- (This figure may be found in the printed book.)
-
- With the Browser's View Relationship menu option, you can easily determine
- information about a module such as which module calls it and what data it
- uses.
-
- The Source Browser provides far more information about your program than the
- CREF utility (available with previous versions of MASM) provides. And, as
- you browse through the structure of your code, the Source Browser creates a
- browse history. At the end of the process, you can see where you have been.
-
-
-
- Information-Packed Online Reference System
-
- All online help can be accessed from one location.
-
- The productivity benefits of detailed online documentation are now available
- to MASM 6.0 users. In addition to extensive indexes and cross-references,
- the Microsoft Advisor online reference system provides hypertext links
- between related concepts. It includes information on all phases of project
- development, from editing to using the OS/2 programming interface. The
- Advisor is available either through PWB or from the command line with
- QuickHelp.
-
- The Microsoft Advisor includes
-
-
- ■ Information on using PWB's integrated development environment
-
- ■ Explanations of PWB dialog boxes and menu choices
-
- ■ How-to and quick-reference information for all installed languages and
- utilities (see Figure 6)
-
- ■ Complete explanations of error messages for all utilities
-
-
- (This figure may be found in the printed book.)
-
- The next section describes the online information available for the
- assembler.
-
- You can add your own information to the online database using the HELPMAKE
- utility included in MASM 6.0. Similarly, vendors who develop tools for
- Microsoft language products can add the documentation for those tools to the
- Advisor.
-
-
-
- Integrated Documentation
- ────────────────────────────────────────────────────────────────────────────
-
- The MASM 6.0 documentation provides comprehensive information to get you
- started, how-to information on all the tools, examples of the new language
- features, and topical information for advanced users. The documentation set
- includes three manuals and the online reference system, the Microsoft
- Advisor.
-
-
- Microsoft Advisor Online Reference System
-
- You can access the Microsoft Advisor from the PWB environment or from
- QuickHelp using the command line. Figure 7 shows the Advisor table of
- contents screen. In addition to the features listed on page 13, the Advisor
- includes MASM-specific information such as
-
-
- ■ Syntax and timing information for all instructions
-
- ■ Complete documentation for DOS and BIOS function calls
-
- ■ Sample code you can insert into your programs
-
- ■ Help on all error messages
-
-
- Help is context-sensitive─you can look up any item by placing the cursor on
- the word and pressing the F1 key or clicking a mouse button.
-
- (This figure may be found in the printed book.)
-
-
- Installing and Using the Professional Development System
-
- Read Installing and Using the Professional Development System to get started
- using MASM 6.0. This short book includes information on installing the
- Professional Development System, configuring your system, using PWB and the
- CodeView debugger, building multiple-module programs, and navigating through
- the Advisor.
-
-
- Microsoft Macro Assembler Programmer's Guide
-
- The Programmer's Guide is a complete guide to new MASM features.
-
- The Programmer's Guide provides the information you need to write
- assemblylanguage programs for this new assembler. New language features are
- discussed throughout the Programmer's Guide rather than in a separate update
- manual.
-
- The Programmer's Guide shows how to use NMAKE, HELPMAKE, CodeView, and
- H2INC. It also explains how to customize the PWB editor, develop OS/2 and
- dual-mode applications, create dynamic-link libraries, write memory-resident
- (TSR) software, and create mixed-language programs.
-
- Appendix A explains how to update MASM 5.1 code. Other appendixes cover the
- BNF grammar, assembly listings, reserved words, error messages, and default
- segment names. The glossary defines language and utility terminology.
-
-
- Microsoft Macro Assembler Reference
-
- The popular Microsoft Macro Assembler Reference again furnishes complete
- information on all MASM instructions (including those for the i486
- processor) with syntax, timings, and encoding information. It also includes
- a quick reference for directives, operators, predefined symbols, keycodes,
- and command-line syntax for the assembler and all utilities. Figure 8 shows
- an excerpt from the Reference containing information on BSF/BSR
- instructions.
-
- (This figure may be found in the printed book.)
-
-
-
- Conclusion
- ────────────────────────────────────────────────────────────────────────────
-
- MASM 6.0 can revolutionize your approach to assembly-language programming.
- Never before has there been an assembler that decreases your programming
- time and effort so significantly while enhancing your productivity and
- providing faster assembly.
-
- Simplified programming means greater productivity.
-
- This new assembler simplifies assembly-language programming─from declaring
- external symbols, writing procedure calls, and developing multilanguage
- programs to coding macros, loops, and decision constructs.
-
- MASM 6.0 sets new standards in virtually every area important to the
- professional developer who needs to write, debug, and maintain assembly
- routines or modules. The full-featured editor, debugger, and source browser
- of this multilanguage development system can significantly increase your
- productivity.
-
- The improvements in speed and capability over previous versions of MASM are
- substantial. The clear advantage in ease of use and increased productivity
- makes MASM 6.0 the obvious choice for your assembly-language projects.
-
-
-
- System Requirements
- ────────────────────────────────────────────────────────────────────────────
-
- Microsoft Macro Assembler version 6.0 requires the following configuration:
-
-
-
- ■ A personal computer running DOS version 3.0 or later or OS/2 version
- 1.1 or later.
-
- ■ 640K (kilobytes) of available memory (RAM) for operating under DOS (1
- megabyte of RAM is recommended).
-
- ■ 3 megabytes of RAM for operating under OS/2 (4 megabytes are
- recommended).
-
- ■ At least 384K of extended memory to debug large DOS programs.
-
- ■ One hard-disk drive with at least 4 megabytes of free space.
- Installation of all files provided with MASM 6.0 requires
- approximately 6.2 megabytes of disk space. The setup program checks to
- see if there is enough space available, and also prompts you to decide
- whether or not to install online help and sample code.
-
- ■ One floppy-disk drive. For OS/2, either a 1.2 megabyte, 5.25-inch
- drive or a 720K, 3.5-inch drive. For DOS, either a 1.2 megabyte,
- 5.25-inch drive; a 360K, 5.25-inch drive; or a 720K, 3.5-inch drive.
- (1.2 megabyte disks and 720K floppy disks are shipped in separate
- boxes. 360K floppy disks are available on request.)
-
-