Q68071: FIX: MASM Aligns on 4-Byte Boundary After Offset 8000h
Article: Q68071
Product(s): Microsoft Macro Assembler
Version(s): 5.1,5.1a
Operating System(s):
Keyword(s):
Last Modified: 04-FEB-2002
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Macro Assembler (MASM), versions 5.1, 5.1a
-------------------------------------------------------------------------------
SYMPTOMS
========
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.
STATUS
======
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.
MORE INFORMATION
================
The following is the assembly listing that is generated for the example below.
Assembly Listing
----------------
Code Generated Source
-------------- ------
F8 clc
90 EVEN
F8 clc
ORG 8000h
F8 clc
87 DB 90 EVEN
F8 clc
Sample Code
-----------
; Assemble options needed: none
_TEXT SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:_TEXT
start:
clc
EVEN
clc
ORG 8000h
clc
EVEN
clc
_TEXT ENDS
END start
Additional query words: 5.10 5.10a buglist5.10 buglist5.10a fixlist6.00
======================================================================
Keywords :
Technology : kbMASMsearch kbAudDeveloper kbMASM510 kbMASM510a
Version : :5.1,5.1a
Solution Type : kbfix
=============================================================================
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 1986-2002.