ID Number: Q74221
6.00 | 6.00
MS-DOS | OS/2
buglist6.00
Summary:
The Microsoft Macro Assembler (MASM) version 6.0 will produce a syntax
error when multiple variables (separated by commas) are listed
following a COMM directive if any variable, except the last one in the
list, does not have a count field specified.
More Information:
The sample code below illustrates this problem. MASM version 5.1 and
5.1a assemble the code without any errors. According to the BNF
Grammar in Appendix B of the "Microsoft Macro Assembler Programmer's
Guide," this should also assemble correctly with MASM version 6.0.
However, assembling sample code #1 with MASM 6.0 produces the
following error:
error A2008: syntax error: dec
When assembling sample code #2, MASM 6.0 produces this error:
error A2008: syntax error: inc
The following methods may be used to work around these problems:
1. Place the count field with each variable specified. For example:
COMM NEAR var1:word:1,var2:word:1,var3:word:3
-or-
2. Make multiple COMM statements. For example:
COMM NEAR var1:word
COMM NEAR var2:word
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 #1
--------------
; Assemble options needed: none
.model small
.data
COMM NEAR var1:WORD, var2:WORD ; This doesn't work
; COMM NEAR var1:WORD:1, var2:WORD ; This works
end
Sample Code #2
--------------
.model small
.data
COMM NEAR var1:WORD,
var2:WORD, var3:WORD ; This doesn't work
; COMM NEAR var1:WORD:1,
; var2:WORD:1, var3:WORD:1 ; This works
end