FIX: A2006: Phase Error Using EQU in An IFNDEF BlockLast reviewed: September 11, 1997Article ID: Q40452 |
5.10 | 5.10
MS-DOS | OS/2
kbtool kbfixlist kbbuglist
The information in this article applies to:
SYMPTOMSWhen using an equate in an ifndef block, the following error is generated
A2006: phase error between passes CAUSEOn pass 1 if the symbol is not defined, it gets defined. On pass 2 it is defined; therefore, you get a phase error.
STATUSMicrosoft has confirmed this to be a problem in MASM versions 5.0, 5.1, and 5.1a. The problem was corrected in MASM version 6.0.
RESOLUTIONWhen using the equate, specify a size (with WORD PTR, for example).
MORE INFORMATIONThe following sample code demonstrates the problem. In order to work around the problem change
MOV bx, SAVEto the following
MOV bx, WORD PTR SAVE Sample Code:;Assemble options needed: none ifndef SAVE SAVE EQU 1endif code SEGMENT assume cs:code MOV bx, SAVEendcode: code ENDS END |
Additional reference words: 5.10 buglist5.00 buglist5.10 buglist5.10a
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |