Microsoft KB Archive/78393

= FIX: MASM 6.0 Always Uses EAX Register with BSWAP =

Article ID: 78393

Article Last Modified on 10/22/2003

-

APPLIES TO


 * Microsoft Macro Assembler 6.0 Standard Edition

-



This article was previously published under Q78393



SYMPTOMS
The 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.



RESOLUTION
A 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.



STATUS
Microsoft has confirmed this to be a problem in MASM version 6.0. This problem was corrected in MASM version 6.0a.



MORE INFORMATION
The 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   0CA0Fh END start

Additional query words: 6.00 buglist6.00 fixlist6.00a

Keywords: kbfix KB78393

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.