The information in this article applies to:
SYMPTOMSThe Microsoft Macro Assembler (MASM) version 6.0 may generate incorrect code with respect to the ALIGN directive. If the alignment value specified is larger than 2, the padding generated by the assembler may consist of incorrect instructions. Instead of generating an opcode for a no-operation "mov ax, ax" instruction (8Bh C0h), the assembler may reverse the bytes that are output (C0h 8Bh), resulting in code that fails to run correctly. RESOLUTIONThis problem may be corrected by patching ML.EXE with one of the following debug scripts. Before performing this operation on your EXE files, you might want to make a backup copy.
To utilize one of these scripts, type the specified commands (without
the line numbers) into a file called PATCH.SCR. Note that line 3 in
both scripts should be left blank as indicated. Next, create and run
a batch file that contains the following commands:
REN ML.EXE ML.DAT STATUSMicrosoft has confirmed this to be a problem in MASM version 6.0. This problem was corrected in MASM version 6.0a. MORE INFORMATIONThe ALIGN instruction is used to indicate the boundary on which to start the next instruction. For example, a statement such as ALIGN 4indicates that the next instruction should start on a 4-byte boundary. MASM version 6.0 may use a 2-byte instruction (that has no effect) to pad the code. In this case, the opcode may be reversed as described above. This problem may be illustrated by assembling the sample code below. Sample Code
Additional query words: 6.00 buglist6.00 fixlist6.00a
Keywords : |
Last Reviewed: January 4, 2000 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |