FIX: MASM 6.0 Always Uses EAX Register with BSWAPLast reviewed: September 16, 1997Article ID: Q78393 |
6.00 | 6.00
MS-DOS | OS/2
kbtool kbfixlist kbbuglist
The information in this article applies to:
SYMPTOMSThe Microsoft Macro Assembler (MASM) version 6.0 always generates code that uses the EAX register with the BSWAP instruction. Attempting to use another register with the BSWAP instruction assembles without error; however, the code generated uses the EAX register.
RESOLUTIONA workaround for this problem is to embed the opcode (operation code) for the instruction directly in the code. The sample code below demonstrates this method.
STATUSMicrosoft has confirmed this to be a problem in MASM version 6.0. This problem was corrected in MASM version 6.0a.
MORE INFORMATIONThe following sample code can be used to demonstrate the problem.
Sample Code; Assemble options needed : none .MODEL small .486 .STACK 4096 .CODE start: bswap eax ; Code generated: 66| 0F C8 (bswap eax) bswap ebx ; Code generated: 66| 0F C8 (bswap eax) BYTE 66h ; Embed a bswap ebx in the code WORD 0CB0Fh bswap ecx ; Code generated: 66| 0F C8 (bswap eax) BYTE 66h ; Embed a bswap ecx in the code WORD 0C90Fh bswap edx ; Code generated: 66| 0F C8 (bswap eax) BYTE 66h ; Embed a bswap edx in the code WORD 0CA0FhEND start
|
Additional reference words: 6.00 buglist6.00 fixlist6.00a
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |