MASM Aligns on 4-Byte Boundary After Offset 8000h

ID Number: Q68071

5.10 5.10a | 5.10 5.10a

MS-DOS | OS/2

buglist5.10 buglist5.10a fixlist6.00

Summary:

The module below demonstrates a problem with the Microsoft Macro

Assembler (MASM) versions 5.1 and 5.1a. If an EVEN directive is used

after an offset of 8000h within a segment, the assembler will try to

align the next instruction or data element on a 4-byte boundary. In

other words, more bytes for padding will be added than are necessary

to achieve even alignment.

Microsoft has confirmed this to be a problem in MASM versions 5.1 and

5.1a. This problem was corrected in MASM version 6.0.

Sample Code

-----------

_TEXT SEGMENT

ASSUME CS:_TEXT

clc

even

clc

org 8000h

clc

even

clc

_TEXT ENDS

END

Assembly Listing

================

Code Generated Source

-------------- ------

F8 clc

90 even

F8 clc

org 8000h

F8 clc

87 DB 90 even

F8 clc

Additional reference words: 5.10 5.10a