- ▼MSDN Library - April 2000
- ▶Welcome to the MSDN Library
- ▶Visual Studio 6.0 Documentation
- ▶Office Developer Documentation
- ▶Windows CE Documentation
- ▶Platform SDK
- ▶SDK Documentation
- ▶DDK Documentation
- ▶Windows Resource Kits
- ▼Knowledge Base
- About the Microsoft Knowledge Base
- ▶ACME Setup Program
- ▶BackOffice
- ▶Data Access
- ▶Exchange
- ▶Fortran Compiler
- ▶FoxPro
- ▶Hardware
- ▶Internet Explorer
- ▶Internet Development
- ▼Macro Assembler
- .MODEL Directive Forces DOSSEG Segment Ordering in MASM
- .MODEL Directive Language Parameter Doesn't Preserve Case
- .MODEL with a Language Makes Procedure Names PUBLIC
- .TYPE Operator Has New Bit Settings
- and [] Are Semantically the Same
- 32-Bit Flat Memory Model MASM Code for Windows NT
- A Structure Template Can Be Referenced in a MASM Program
- Accessing Command Line Arguments
- Accessing Global Symbols Defined in C from MASM
- Accessing MASM Structure Fields in a Multimodule Program
- Addressing above 1 Megabyte Under MS-DOS
- Anonymous Labels for Jump Instructions
- Assembling Code Developed for MASM 5.x with MASM 6.x
- BSESUB.INC Contains Incorrect Declarations
- BUG: A2008 When Angle Brackets Missing on FOR Argument List
- BUG: A2154 If Structure Member in Control-Flow Directive
- BUG: ALIGN Directive Placement Changes EXE File Size
- BUG: Assembling .ASM File With CL.EXE Fails w/ MASM 6.0
- BUG: Causes of A2042 During Data Initialization
- BUG: Class Must Be Listed Last in Full Segment Definitions
- BUG: Continuation Char with Initializing Structures
- BUG: DX1020 or Application Error from H2INC
- BUG: Error A2005 Generated Due to Conflict with Global Label
- BUG: EXTERNDEF ABS Fails with Span Dependent Value
- BUG: H2INC 1.0 Does Not Support _syscall or _stdcall
- BUG: Help Files Not Available After Installing Samples Only
- BUG: Inconsistent Case Conventions in Equate @Filename
- BUG: Incorrect Formatting of Macro Comment Listings
- BUG: Installing MASM 6.0 for OS/2 May Result in a Setup Error
- BUG: Invalid A2006 Error Generated by MASM 6.x
- BUG: L1103 Error Caused by Incorrectly Nested Segments
- BUG: LINK Error L1101 with Public Weak Extern
- BUG: Macro Expansion May Occur Before Macro Call in Listing File
- BUG: Macro with Line Continuation Interprets ';' Incorrectly
- BUG: MASM 5.10 Installation Asks for Disk 'OS/2 Program'
- BUG: MASM sample SYSINFO Error: L1101 invalid object module
- BUG: ML Uses DGROUP in Flat Model and Generates A2006
- BUG: Ml.exe Hangs If ASSUME DataReg:ERROR Directive Used
- BUG: No Error or Code for Multiple END Statements
- BUG: No Warning Moving Segment Register to Extended Reg.
- BUG: Number of Lines on First Page of Listing File Incorrect
- BUG: ORG in STRUCT Affects Current Segment Size with -Sf
- BUG: PAGE + Directive Doesn't Insert Form Feed in Listing File
- BUG: Record Instance Cannot Have Same Name as a Record Field
- BUG: SIB MOV EAX,[EAX+EBP] Generates Incorrect Code
- BUG: SIZE and SIZEOF May Give Incorrect Values for Locals
- BUG: SUBSTR Index Past End of String Incorrectly Assembles
- BUG: The Command 'ml /?' Causes Unexpected Errors
- BUG: Trailing Commas May Cause Incorrect Error Messages
- BUG: Trouble Changing Where SETUP Installs MASM
- Chaining Interrupts Using MASM
- Characteristics of MASM Labels
- Comparing String Arguments in Macros
- Conditionally Assembling the END Directive
- Controlling Segment Ordering
- Creating 32-Bit Flat Memory Model MASM Code for OS/2 2.0
- Declaring a Communal Variable of a Record Type
- Displaying Data for Debugging in MASM
- Division Operators '/' with .186, .286, and .386
- DOCERR: .code Directive with Segment Name
- DOCERR: @DataSize Misspelled
- DOCERR: @MakeFil Macro Spelling on MASM 5.1 CodeView Tutorial
- DOCERR: [bx].month Example Incorrect in MASM Programmer's Guide
- DOCERR: A2041 Error When Macro Parameter Length > 255 bytes
- DOCERR: ALIAS Directive Undocumented in MASM 6.0
- DOCERR: asub and ctest in MASM Programmer's Guide
- DOCERR: Comment Strings Should Not Overlap onto the Next Line
- DOCERR: Conditional Jump Instruction Is Incorrectly Documented
- DOCERR: Control and Status Word Missing Abbreviation Info
- DOCERR: Correction for Shifting and Rotating Bits
- DOCERR: Date Format in Listing File Incorrect in MASM 6.0 Manual
- DOCERR: Divison Rather than Multiplication
- DOCERR: Documentation Error on the LGDT Instruction
- DOCERR: DUP Is a Reserved Word in MASM
- DOCERR: Encoding for LTR Instruction Is Incorrect
- DOCERR: ENDM Can't Be Used to Return Value from Macro Function
- DOCERR: Error in Macro Example in MASM 5.1 Update Manual
- DOCERR: Errors in Chapter 5 of MASM Programmer's Guide
- DOCERR: Errors in MASM 6.0 'Installing and Using...' Manual
- DOCERR: Example in MASM 5.1 Programmer's Guide
- DOCERR: EXE2BIN.EXE Doesn't Come w/ PC-DOS 3.3, 4.0, & 4.01
- DOCERR: Extended Keyboard Detection Is Documented Incorrectly
- DOCERR: External Addresses in '=' Directive
- DOCERR: KBDINFO Incorrectly Defined
- DOCERR: LODS Adjusts the SI Register, Not the DI Register
- DOCERR: Macro Contains IF Directive Rather than IFE Directive
- DOCERR: MASM 5.1 Instructions Operand Size Documented Wrong
- DOCERR: MASM 6.0 Makefile BELL.MAK Gives C1024 Compiler Error
- DOCERR: MASM 6.0 Makefile SNAP.MAK Gives U1073 NMAKE Errors
- DOCERR: MASM 6.0 Programmer's Guide Errors: Chapter 7
- DOCERR: MASM 6.0 Programmer's Guide Errors: Chapters 1-6
- DOCERR: MASM 6.0 Programmer's Guide Errors: Chapters 1-6
- DOCERR: MASM 6.0 Programmer's Guide Errors: Chapters 11-20
- DOCERR: MASM 6.0 Programmer's Guide Errors: Chapters 7-10
- DOCERR: MASM Err Msg A2063, Name in .MODEL SMALL Not Ignored
- DOCERR: MOV mem,accum and MOV accum,mem Formats Documented Wrong
- DOCERR: New Command-Line Option for MASM 5.1: /LA
- DOCERR: PROC Directive Will Not Work with Structure Type
- DOCERR: procedure Pprog(); Should Be procedure Pprog;
- DOCERR: Programmer's Guide FREE ST(num) Reference Is Incorrect
- DOCERR: Repeat Prefix (REP) Documentation Error
- DOCERR: Result of Operation Stored in DESTINATION, Not SOURCE
- DOCERR: Signed/Unsigned Comparisons
- DOCERR: SMSW, SGDT, SIDT, SLDT, VERR, VERW Don't Assemble
- DOCERR: Some Coprocessor Instructions Not Emulated
- DOCERR: The Stack Grows into Low Memory
- DOCERR: Value Returned By Prologue Macro Documented Incorrectly
- Embedding the Assembly Date and Time in a MASM 6.0 Object
- Error A2105 with PUSHA and POPA Instructions
- EXE2BIN Error Messages
- Expressions in Definitions Changed for MASM 5.10
- Finding Size of Program
- Fix-Up Overflow Caused By Extrn Statements and .Fardata
- FIX: 'Operand Expected' Error Message
- FIX: 'Value Out of Range' Error
- FIX: .IF with Multiple Tests Adds a JMP Instruction
- FIX: /Z Switch Gives 'Unknown Option' Error in MASM 6.0b
- FIX: /Zm and $-Constant Produces A2075 in MASM 6.0
- FIX: ^Z in Input File Appears to Truncate Listing File
- FIX: A1010 from Unclosed Segment in MASM @ShowStr Macro
- FIX: A2006: Phase Error May Be Caused By Incorrect NOP
- FIX: A2006: Phase Error Using EQU in An IFNDEF Block
- FIX: A2029 Incorrectly Generated If Operand = [ebx][ebx]
- FIX: A2042 May Be Caused By Using LOW and OFFSET In MASM 5.1
- FIX: A2107 with .RADIX 16 and Real Number Initialization
- FIX: A2138 Error--Structure Member Span-Dependent Equate
- FIX: A2138, A2036 or Hang, Init Nested Structure Array
- FIX: A4001 May Be Caused By a Literal '>' in Text Equate
- FIX: A5114: Operand Size Does Not Match Segment Word Size
- FIX: ALIGN Following DUP Operator or Structure May Fail
- FIX: ALIGN Immediately After INCLUDE Generates L1101
- FIX: ALIGN or EVEN Cannot follow DUP in Same Module
- FIX: Alignment in Nested Structures Incorrect in MASM 6
- FIX: Assembling with /Sg May Cause A2075 Error
- FIX: ASSUME Using SEG on Communal Far Data Item
- FIX: Avoid externdef or proto when Initializing Data
- FIX: Bad Code Produced When Using Location Arithmetic
- FIX: Bad Object File Generated with MASM 5.1 and 5.1a
- FIX: BIND Generates Multiply Defined Symbols with API.LIB
- FIX: Byte Order Incorrect in Listing File For Doublewords
- FIX: Code Segment Defined within a Procedure
- FIX: COMM Directive
- FIX: COMM Directive Produces Error If Count Field Not Specified
- FIX: Command Line Option /E Generates a Bad Fixup Record
- FIX: Command Line Option /Z Is Ignored after Processing
- FIX: DOSXNT DX1020 Error Using .WHILE and Processor Flag
- FIX: DUP Behavior Different with Span-Dependent Value
- FIX: DUP Operator Must Be Preceded by White Space
- FIX: Duplicate Struc Declaration and /Zi Hangs MASM 5.1, 5.1a
- FIX: DWORD Local Variables Use Wrong Offset in MASM
- FIX: DX1020 Using TEXTEQU to Define False IF Block
- FIX: Error A2057 With DOS.INC, .386, and MASM 5.1 or 5.1a
- FIX: Error A2114 When Using OPTION PROLOGUE
- FIX: Error L1057 Generated When Assembling with /Zi
- FIX: Error Message A2051 Incorrectly Generated
- FIX: Error Message A4100: Impure Memory Reference
- FIX: EVEN, ALIGN Generate Error in AT Segments
- FIX: EXTERNDEF on PROC Labels Does Not Make Them Public
- FIX: Extra Line-Feed Char Generated in Four-Digit Listing File
- FIX: FNENI, FNCLEX Assembled Wrong After PROC USES
- FIX: Forward Reference to Segment Name Gives Phase Error
- FIX: Functions Exported Incorrectly in MASM 6.1 WINDLL Sample
- FIX: FWAIT Prefixes Generated for Processor Control Instructions
- FIX: Illegal Instruction from Structure Member Offset
- FIX: Incorrect Checksum
- FIX: Incorrect Code Generated for IRET With PROC USES
- FIX: Incorrect Code Generated If Operand Is [eax][eax]
- FIX: Incorrect Code Generated If Operand Is [esp][esp]
- FIX: Incorrect Code With TYPE and SI Index Register
- FIX: Incorrect CV Info for Local Structure in MASM 6.0
- FIX: Incorrect RET Generated for PROC when EPILOGUE:NONE
- FIX: Incorrectly Generated A4100: Impure Memory Reference
- FIX: INVOKE May Cause Incorrect Line Information
- FIX: IRP Directive Has Single Line Limit of 120 Characters
- FIX: JMP Jumps to the Proc When Using Duplicate Names
- FIX: L1101 Error Linking MASM Object Module w/ Large Structure
- FIX: L1126 Link Error May Be Caused By EXPORT in PROC Definition
- FIX: LES Instruction Assembles Incorrectly
- FIX: LOCAL Directive with a Structure
- FIX: Long Command Line Generates Protection Violation
- FIX: MASM 5.1 Generates Incorrect Listing for RET Statement
- FIX: MASM 5.1, 6.x, and the LOCK and REP Prefixes
- FIX: MASM 5.1/5.1a .OBJ May Cause LINK to Generate L2013 Error
- FIX: MASM 5.1/5.1a Cause LINK to Put Uninitialized Data in .EXE
- FIX: MASM 5.1/5.1a Will Not Allow .STACK to Exceed 32K
- FIX: MASM 6.0 ALIGN Directive Requires Patch to Work Correctly
- FIX: MASM 6.0 Always Uses EAX Register with BSWAP
- FIX: MASM 6.0 Does Not Align on Page Boundary
- FIX: MASM 6.0 Does Not Detect Overflow Initializing Structures
- FIX: MASM 6.0 Fails with /Ta if Filename Has No Period
- FIX: MASM 6.0 Generates L1103 for Nested Structures
- FIX: MASM 6.0 May Generate A2103 Error When Assembling with /Zi
- FIX: MASM 6.0 May Generate Incorrect Code for IMUL Instruction
- FIX: MASM 6.0 May Generate Wrong Listing for CMPXCHG
- FIX: MASM 6.0 May Incorrectly Generate A2032 for EQU
- FIX: MASM 6.0 May Incorrectly Generate A4000 for CMP
- FIX: MASM 6.0 May Incorrectly Insert Prologue with USES
- FIX: MASM 6.0 May Initialize Every 256th Data Symbol
- FIX: MASM 6.0 May Parse a Comment as a Conditional Directive
- FIX: MASM 6.0 ML Driver Does Not Pass /nologo to LINK Correctly
- FIX: MASM 6.0 Setup May Generate 'Bad Full Path' Error Message
- FIX: MASM Aligns on 4-Byte Boundary After Offset 8000h
- FIX: MASM Allows Alignments > Segment Alignment
- FIX: MASM BELL and SNAP TSR Program Examples Incorrect
- FIX: MASM Fails to Generate Error When Real Values Are Too Smal
- FIX: MASM Generates a _TEXT Segment in Far Code Models
- FIX: MASM Generates Incorrect Code for Indirect Addressing
- FIX: MASM Generates Stack Overflow on Code with Redefinition
- FIX: MASM Moves Segment Register w/out Generating Error
- FIX: Mixing \ and / in Command Line Causes Problems
- FIX: ML DX1020 Error With Several Source Files In Directory
- FIX: ML Fails When PAGE Directive Has Invalid Value
- FIX: MOV with Type Operator Generates Incorrect Opcodes
- FIX: Near Call Between Segments Within a Group May Fail
- FIX: Nested Dups in Structure Cause Recursive Loop
- FIX: Nested NOT Operators Yield Incorrect Value
- FIX: Nested Structures May Hang Macro Assembler 6.0
- FIX: No Error Generated by MASM 5.0 for Equates Made Public
- FIX: No Stack Frame From CMACROS.INC cProc FORCEFRAME
- FIX: Omitting Range Keyword After LABEL Directive Causes Error
- FIX: Only First LOCAL Variable Generates CodeView Information
- FIX: Operator '.' and the Operator '*'
- FIX: ORG Behavior Different with Span-Dependent Value
- FIX: ORG Calculated from Label May Fail in 6.0a/6.0b
- FIX: ORG Following ORG Statement with $ May Fail in 6.0
- FIX: Parentheses Necessary for Operator Precedence
- FIX: Phar Lap err 58 Running MASM From Read-Only Drive
- FIX: Public Labels Are Prefixed with Underscore Incorrectly
- FIX: Relational Operators Evaluate to Wrong Value
- FIX: Relational Operators with MOV May Evaluate Incorrectly
- FIX: Sample Program BELL.C Causes R6001 Error
- FIX: STRUC Defined Structures Cannot Be Nested
- FIX: Structure References Using '.' Cause Confusion
- FIX: SUBSTR Will Not Work if Target Is the Same as Source
- FIX: Subtracting Two Externs Gives Incorrect Results
- FIX: SYS1811 or A2087 and A2006 Incorrectly Generated
- FIX: Text Macros Cannot Serve as Data-Definition Replacements
- FIX: Using a Higher Processor Directive in a Macro Causes A2006
- FIX: Using EXTERNDEF w/ a label May Work Incorrectly
- FIX: Using TYPE Operator in Indirect Memory Operand Gives A2056
- FIX: Value of @FileName Truncated If File Has Short Extension
- FIX: Warning A4057 Generated Instead of Error A2019
- FIX: Warning A4057 When Using Local Variables
- FIX: Whitespace Character Must Precede DUP Operator
- FIX: Wrong Opcode For Far Call from USE16 Seg to USE32 Seg
- FIX:EXTRN ABS Doesn't Work As Software Interrupt Number
- FIX:MASM Incorrectly Allows Relative Values as Constant
- H2INC Does Not Initialize Variables During Conversion
- Hexadecimal Numbers Must Begin With a Digit Between 0 and 9
- How to Declare Externals in MASM
- How to Enable Math Coprocessor Instructions
- How to Implement a Function Pointer in MASM
- How to Reboot Your Machine Within a MASM Application
- How to Share a Structure Between C and Assembler Modules
- How to Use Int 20h to Terminate an .EXE Program
- HOWTO: Create Static Overlays with Macro Assembler
- Invalid Operation and Inexact Result in Control Word
- JMP to a Far Address Lists Segment First in Listing File
- Jump to Absolute Address
- Language Names Used as PUBLIC Symbols Are Not Allowed
- Line Numbers for MASM Listing Files
- Line Numbers in .MAP File Do Not Relate to Listing File
- LOCAL Requires Language Specifier on .MODEL
- LOOP Can Use ECX in 16-bit Segment, CX in 32-bit Segment
- Macro Assembler Version 6.0 Return Codes
- Making Multiple Initialized Far Data Segments
- MASM 5.1 Setup Shows Blank Display on LCD/Mono Monitor
- MASM MUL Operation Accepts Only One Operand
- MASM Optimizations Not Recognized by Some Processors
- Max Identifier Length May Cause Mixed C/MASM Conflict
- Minimum System Required to Run MASM 6.1
- Minimum System Requirements for MASM 6.0
- Mixed C and MASM with MASM Main Language, C Run-Time
- Mixed C and MASM with MASM Main Language, No C Run-Time
- ML611d.exe MASM 6.11d Patch Available
- ML612.exe MASM 6.12 Patch Available
- Name Directive No Longer Supported
- New Keywords Near16, Near32, Far16 and Far32 in MASM
- OFFSET Always Returns the END of a Segment Name
- OFFSET Operator Is Segment Relative
- Passing a long* from a C Module to an Assembly Module
- Passing a Pointer to a Structure from C to Assembly
- Passing an Integer from C to MASM, Returning a Double
- PATCH: MASM 6.13 Patch Available
- PATCH: ML614.exe 6.14 Patch Available
- Percent Character Not Allowed in Identifiers in MASM 6.0
- Phase Errors May Be Caused By Forward References
- Positioning External Declarations in Assembly
- PRB: 'AT' Combine Types
- PRB: /Fb May Cause A1006 in Low Memory Situations
- PRB: 8087 mnemonics without Operators
- PRB: A2041 Initializing a Large STRUCT
- PRB: A2102 Warnings Generated for Possible 80286 Problems
- PRB: A2108 Error When Using Simplified Segment Directives
- PRB: Assume Directive Not Displayed
- PRB: Cannot Backup Distribution Disks
- PRB: CodeView for Windows Does Not Run in Windows 95 and NT
- PRB: Comparison of a Constant and a Relocatable Is Not Allowed
- PRB: CV2206 WARNING: Corrupt Debug OMF Detected in Object...
- PRB: DX1410 Error Using NMAKE with MASM 6.11
- PRB: Error 'constant expected' with ORG Directive
- PRB: Error A2032 Using Indexed Addressing
- PRB: Error A2068 Using REP Prefix with CMPS Instructions
- PRB: H2INC Does Not Handle #undef
- PRB: Incorrect Debug Information in 32-bit Object Module
- PRB: INVOKE Pushes SS to Convert NEAR PTR to FAR PTR
- PRB: Jumping to an Absolute Addresss with MASM
- PRB: Line Parsing Order: Looks Up Second Token First
- PRB: MASM 6.x and the Windows 3.1 DDK
- PRB: MASM Err Msg: Unable to Open Input File: options.asm
- PRB: MASM Generates Unexpected Prefix Bytes 66h, 67h
- PRB: ml /D?WIN and CMACROS.INC Produce A2016 and A2008
- PRB: No Error for Same Register Listed Twice in USES Clause
- PRB: No Warning for INVOKE Between 16-Bit and 32-Bit Segments
- PRB: Possible Cause of L2002 for Mixed C, MASM in Large Model
- PRB: SEGMENT AT Does Not Initialize Data at Absolute Address
- PRB: SIZE Operator Value
- PRB: Span-Dependent Value Behavior Changes in N-Pass Assembly
- PRB: Spontaneous Assembly and MASM 6.11 Errors
- PRB: Usage of an ORG Directive in a STRUCT Declaration
- PROC w/ Parameters Requires Language Specifier on .MODEL
- Procedures With Arguments Require a Specified Language
- Producing .com Files With MASM
- QuickHelp Categories Menu May Be Shorter with MASM 6.0
- Real and Protected Mode Segment Size
- Real-Number Data in IEEE Format
- Real-Number Encoding Needs Exact Number of Digits
- Relative Addresses (Relocatables) and the Minus Operator
- Results of not Specifying a Starting Address
- Return Must Match Memory Model for CALL to Label in Proc
- Returning a Float from Assembly to C
- SAMPLE: MASMWin.exe Uses MASM 6.0 to Write Windows Application
- Segment Relative Versus Group Relative
- Sign-Extended Register and Immediate from of AND/OR/XOR
- Some Instructions May Require Enabling of Instruction Set
- Specifying the Size of a CALL or JMP Instruction in MASM
- Static Variables Declared in MASM Routines Called from C
- Testing Math Coprocessor Instructions FLD FADD FSTP FST
- The MASM ASSUME Directive Does Not Generate Code
- The ORG Directive and Actual Offsets
- Tracing into a Macro When Debugging Assembly Programs
- Trapping a Keystroke and Displaying Its Extended Scan Code
- Turning a 16-bit Protected Segment into a 32-bit Segment
- Two Causes of Interrupt 0 in MASM Program
- Using a Macro to Determine the Current Segment
- Using Full Segment Directives with MASM 6.0 HELLO.ASM
- Using Huge Memory Model and Huge Arrays in MASM
- Using Immediate and Memory Operands
- Using Interrupt 21h, Function 3Fh to Read the Keyboard
- Using OFFSET with a Group of Data Segments
- Using PROTO and INVOKE to Call a C Function from MASM
- Using the & Operator to Combine Multiple Parameters
- Versions of MASM Prior to 6.0 Do Not Support Flat Model
- Writing Faster Macro Assembler Programs
- Writing Macro Functions and Using the EXITM Directive
- x86 Protected Mode Exceptions
- ▶Messaging
- ▶Microsoft Developer Network
- ▶Microsoft Mastering Series
- ▶Microsoft Systems Journal
- ▶NetShow
- ▶Office
- ▶OLE
- ▶Visual Basic
- ▶Visual Database Tools
- ▶Visual C++
- ▶Visual InterDev
- ▶Visual J++ and Java Language
- ▶Visual SourceSafe
- ▶Visual Studio
- ▶Windows
- ▶Windows Development
- ▶Miscellaneous
- ▶Technical Articles
- ▶Backgrounders
- ▶Specifications
- ▶Books
- ▶Partial Books
- ▶Periodicals
- ▶Samples