Class Must Be Listed Last in MASM 6.0 Full Segment Definitions

ID Number: Q73308

6.00 | 6.00

MS-DOS | OS/2

buglist6.00

Summary:

The "Microsoft Macro Assembler Programmer's Guide" that ships with the

Microsoft Macro Assembler (MASM) version 6.0 states on page 49 that

"options used with the SEGMENT directive can be in any order." The BNF

Grammar for the language also indicates that this should be the case;

however, if a class name is specified and it is not the last option

listed in a full segment definition, the assembler will generate a

syntax error.

More Information:

The sample code below may be used to illustrate this problem.

Assembling the code with MASM version 6.0 results in the following

errors:

file.asm(1): error A2008: syntax error : word

file.asm(3): fatal error A1010: unmatched block nesting : data

Because MASM 6.0 incorrectly requires a class name to be the last item

in a full segment definition, the first error is generated when the

assembler fails to recognize the directive option specified after the

class name. The second error is merely a side-effect of the first.

Microsoft has confirmed this to be a problem in MASM version 6.0. We

are researching this problem and will post new information here as it

becomes available.

Sample Code

-----------

; Assemble options needed: none

data SEGMENT PUBLIC 'DATA' WORD

data ENDS

END