The information in this article applies to:
SYMPTOMSThe Microsoft Macro Assembler (MASM) version 6.0 includes a predefined macro in DOS.INC called @ShowStr that displays a $-terminated string. When the argument to @ShowStr is a string literal and there are no segment directives or ends directives following the occurrence of @ShowStr, the assembler will generate the following error:
RESOLUTIONTo work around this problem, make sure that a simplified segment directive or ends directive follows the @ShowStr macro. STATUSMicrosoft has confirmed this to be a problem in MASM version 6.0. This problem was corrected in MASM version 6.0a. MORE INFORMATIONWhen @ShowStr is passed a string literal, the macro generates the following code:
The line "sseg SEGMENT" restores the segment but the macro never
closes the segment; it relies on the user subsequently closing the
segment with the appropriate ends directive or by opening another
segment with a simplified segment directive. If the segment is left
open, an A1010 error is generated.
In the sample code below, @ShowStr is in a segment started with .CODE. In the macro expansion, that segment is ended and the next segment begun with .DATA. The code segment is restored with the statement _TEXT SEGMENT. This segment is not closed in the macro or in the subsequent code, so the A1010 error is produced. The error can be eliminated by uncommenting either of the commented lines. Sample Code
Additional query words: 6.00 buglist6.00 fixlist6.00a
Keywords : |
Last Reviewed: January 4, 2000 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |