Microsoft KB Archive/81367

= FIX: EVEN, ALIGN Generate Error in AT Segments =

Article ID: 81367

Article Last Modified on 10/22/2003

-

APPLIES TO


 * Microsoft Macro Assembler 6.0 Standard Edition

-



This article was previously published under Q81367



SYMPTOMS
The Microsoft Macro Assembler (MASM) version 6.0 incorrectly generates the following error when an EVEN or ALIGN statement is used in a segment that has an &quot;AT&quot; combine type:

error A2189: invalid combination with segment alignment : X

X is equal to 2 for EVEN directives, and equal to the alignment of the ALIGN directive. MASM version 5.1 does not generate this error.



STATUS
Microsoft has confirmed this to be a problem in MASM version 6.0. This problem was corrected in MASM version 6.0a.

Sample Code
; Assemble options needed: none


 * Hello.asm - This program writes &quot;Hello world.&quot; in red at the top of
 * screen.

.MODEL small

.STACK 4096

.DATA msg   DB 'H', 0Ch, 'e', 0Ch, 'l', 0Ch, 'l', 0Ch, 'o', 0Ch, ' ', 0Ch DB 'w', 0Ch, 'o', 0Ch, 'r', 0Ch, 'l', 0Ch, 'd', 0Ch, '.', 0Ch

_bad  SEGMENT PARA AT 0B800H ORG 160 ALIGN 2           ; This line generates the A2189 error. Line2 LABEL   WORD _bad  ENDS

.CODE start: mov ax, @data mov ds, ax

mov ax, SEG Line2 mov es, ax

mov di, OFFSET Line2 mov si, OFFSET msg

mov cx, 0Ch

rep movsw

mov ax, 4C00h int 21h

END start

Additional query words: 6.00 5.10 buglist6.00 fixlist6.00a

Keywords: kbfix KB81367

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.