BUG: Invalid A2006 Error Generated by MASM 6.x
Article ID: 107500
Article Last Modified on 10/14/2003
APPLIES TO
- Microsoft Macro Assembler 6.0 Standard Edition
- Microsoft Macro Assembler 6.0a
- Microsoft Macro Assembler 6.0b
- Microsoft Macro Assembler 6.1 Standard Edition
- Microsoft Macro Assembler 6.1a
- Microsoft Macro Assembler 6.11 Standard Edition
This article was previously published under Q107500
SYMPTOMS
When you attempt to assemble the sample code below, the Microsoft Macro
Assembler (MASM) fails and reports the following error for the two lines
with "mov" instructions:
error A2006: undefined symbol
RESOLUTION
To work around the problem, do one of the following,
- Simplify the expression. If you uncomment the lines in the sample code,
and delete the original instructions, the code will assemble without
errors.
-or-
- Assemble with the /Zm option (or run MASM.EXE instead of ML.EXE).
-or-
- Use the OPTION OLDSTRUCTS directive to have the assembler treat
structure members the same as in MASM 5.1.
STATUS
Microsoft has confirmed this to be a problem in MASM versions 6.0x, 6.1,
6.1a, and 6.11. We are researching this problem and will post new
information here in the Microsoft Knowledge Base as it becomes available.
Sample Code
; Assemble options needed: none
.MODEL small
STEST STRUCT
f1 BYTE ?
f2 BYTE ?
STEST ENDS
.CODE
mov al, SIZEOF STEST.f1 + SIZEOF STEST.f2
mov al, LENGTHOF STEST.f1 + LENGTHOF STEST.f2
;
; Uncomment the lines below and delete the two lines above to avoid
; the A2006 error
;
; temp = SIZEOF STEST.f1
; mov al, temp + SIZEOF STEST.f2
; temp = LENGTHOF STEST.f1
; mov al, temp + LENGTHOF STEST.f2
END
Additional query words: buglist6.00 buglist6.00a 6.00 6.00a 6.00b 6.10 6.10a 6.11 buglist6.00b buglist6.10 buglist6.10a buglist6.11
Keywords: KB107500