Microsoft KB Archive/120154

= FIX: DX1020 Using TEXTEQU to Define False IF Block =

Article ID: 120154

Article Last Modified on 2/11/2004

-

APPLIES TO


 * Microsoft Macro Assembler 6.0a
 * Microsoft Macro Assembler 6.0b
 * Microsoft Macro Assembler 6.1 Standard Edition
 * Microsoft Macro Assembler 6.1a

-



This article was previously published under Q120154



SYMPTOMS
Using the TEXTEQU directive to define an IF statement that evaluates to FALSE produces the following error message in MASM version 6.1 or 6.1a:

DOSXNT : fatal error DX1020: unhandled exception: General protection fault

When you use ML from MASM version 6.0b, an "Application Error" message box appears when running from a Windows MS-DOS box. From straight MS-DOS, the following error message occurs:

fatal error A1000: cannot open file : error #xx -


 * Macro Called From Main Line Code

Using MLX from MASM version 6.0b produces the following error message:

run-time error R6915

- DOSX16 : unhandled exception

Using ML from MASM version 6.0a, the following error messages occur:

fatal error A2051: text item required


 * Macro Called From Main Line Code

fatal error A1010: unmatched block nesting : _text



RESOLUTION
Use IFDEF expressions along with the /D assembler option to perform conditional assembly.



STATUS
Microsoft has confirmed this to be a bug in the products listed above.

This problem was corrected in MASM version 6.11.



MORE INFORMATION
The following sample code illustrates the problem:

Sample Code
; Assemble options needed: none

dbgs textequ     ; evaluates to false dbgsend textequ dump_matrix macro dbgs mov ax, ax   dbgsend endm _text segment dump_matrix _text ends END

Additional query words: 6.00a 6.00b 6.10 6.10a buglist6.00b buglist6.10 buglist6.10a fixlist6.11

Keywords: kbfix KB120154

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.