PRB: Line Parsing Order: Looks Up Second Token First (35128)
The information in this article applies to:
- Microsoft Macro Assembler (MASM) 5.1
- Microsoft Macro Assembler (MASM) 5.1a
- Microsoft Macro Assembler (MASM) 6.0
- Microsoft Macro Assembler (MASM) 6.0a
- Microsoft Macro Assembler (MASM) 6.0b
This article was previously published under Q35128 SYMPTOMS
The example below will generate the warning:
warning A4016: Reserved word used as symbol: MOV
when assembled with Microsoft Macro Assembler (MASM) 5.1 and 5.1a. This
warning is misleading. MASM 6.0, 6.0a, and 6.0b generate the more specific
error message:
error A2001: immediate operand not allowed
CAUSE
The reference to a_struc.a in the example below is a reference to a
structure template and not to a variable stored in memory. Thus, a_struc.a
is a constant or immediate operand. MASM 5.1 and 5.1a always looks up the
second token on the line first. In the case below, it sees "a_struc".
Because a_struc is a structure declaration, MASM assumes the line declares
a structure instance with "MOV" being the label. At this point, MASM errors
on trying to use reserved symbol "MOV" as a structure instance label.
RESOLUTION
This is the expected behavior of MASM.
Modification Type: | Minor | Last Reviewed: | 11/19/2003 |
---|
Keywords: | KB35128 |
---|
|