ID Number: Q78393
6.00 | 6.00
MS-DOS | OS/2
buglist6.00 fixlist6.00a
Summary:
PROBLEM ID: MSM9111002
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:
Sample Code
-----------
; Assemble options needed : none
.MODEL small, os_dos
.486
.STACK
.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 reference words: 6.00