Structure References Using '.' Cause Confusion

ID Number: Q30379

5.10 5.10a

MS-DOS

buglist5.10 buglist5.10a fixlist6.00

Summary:

Variable names in the assembler can begin with the following

character:

'.'

Structure references use the character '.' as an add operator. This

means the label '.cat' is different than the element 'cat' in a

structure. The assembler can become confused distinguishing the two

uses in a program, and can generate the following error message:

Error A2028: Operator expected' occurs on 'mov ax,duck.cat'

Microsoft has confirmed this to be a problem with MASM versions 5.1

and 5.1a. This problem was corrected in MASM version 6.0.

More Information:

Sample Code

-----------

.MODEL SMALL

mouse struc

cat dw 1

dog dw 2

mouse ends

.DATA

duck mouse <>

.CODE

start: mov ax,@data

mov ds,ax

.cat dw 4

mov ax,duck.cat

END start