FIX: MASM 6.0 ALIGN Directive Requires Patch to Work Correctly (73190)
The information in this article applies to:
- Microsoft Macro Assembler (MASM) 6.0
This article was previously published under Q73190 SYMPTOMS
The 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.
RESOLUTION
This 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.
Debug Script for DOS
--------------------
1: a 7d8a
2: mov ax, ax
3:
4: w
5: q
Debug Script for OS/2
---------------------
1: a 325a
2: mov ax, ax
3:
4: w
5: q
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
DEBUG ML.DAT < PATCH.SCR
REN ML.DAT ML.EXE
STATUS
Microsoft has confirmed this to be a problem in MASM version 6.0.
This problem was corrected in MASM version 6.0a.
Modification Type: | Major | Last Reviewed: | 10/17/2003 |
---|
Keywords: | kbfix KB73190 |
---|
|