MSM9108005: ALIGN or EVEN Cannot follow DUP in Same Module

ID Number: Q75280

6.00 | 6.00

MS-DOS | OS/2

buglist6.00 fixlist6.00a

Summary:

PROBLEM ID: MSM9108005

SYMPTOMS

If an ALIGN or EVEN directive is used in a module after data has been

defined with the DUP operator in the Microsoft Macro Assembler (MASM)

version 6.0, the alignment value will be adjusted by one for each DUP

that precedes it. The example code below illustrates this.

RESOLUTION

Currently, the only workarounds in this case are to either avoid using

ALIGN (or EVEN) and manually pad the segment by the required amount or

to not use the DUP operator in the same segment that will use the

ALIGN (or EVEN) directive.

STATUS

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

This problem was corrected in MASM version 6.0a.

More Information:

Sample Code

-----------

; Assemble options needed: /Fl /Sa

example segment para public 'data'

db 2 dup (0)

db 3 dup (0)

align 8

dw 0 ; starts at offset 6 instead of 8

example ends

end

Additional reference words: 6.00