FIX: Alignment in Nested Structures Incorrect in MASM 6 (77945)



The information in this article applies to:

  • Microsoft Macro Assembler (MASM) 6.0

This article was previously published under Q77945

SYMPTOMS

The Microsoft Macro Assembler (MASM) version 6.0 does not pad aligned nested structures correctly. The list file shown below illustrates this problem.

RESOLUTION

Manually padding the structure definition to force the nested structure to have the correct alignment will work around this problem.

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

The following code can be used to demonstrate the problem.

Sample Code

; Assemble options needed: /c /Fl

.MODEL small, C

.DATA
struct1 STRUCT 2          ; Alignment value is 2
    field1 WORD ?           ; Offset is 0
    field2 BYTE ?           ; Offset is 2
struct1 ENDS

struct2 STRUCT 2          ; Alignment value is 2
    field3 BYTE ?           ; Offset is 0
    nested struct1 <?, ?>   ; Offset is 1, should
struct2 ENDS              ;   be padded to 2

END
				

Modification Type:MajorLast Reviewed:10/17/2003
Keywords:KB77945