ID Number: Q79142
3.00 3.10 3.11 3.14 | 3.00 3.10 3.11 3.12
MS-DOS | OS/2
buglist3.11 buglist3.12 buglist3.14 buglist3.00 buglist3.10
Summary:
PROBLEM ID: CV9112002
SYMPTOMS
Microsoft CodeView versions 3.0, 3.1, 3.11, 3.12, and 3.14 does not
disassemble the CMPXCHG instruction correctly. A properly encoded
CMPXCHG instruction is shown in mixed source and assembly as ???
possibly followed by random instructions.
STATUS
Microsoft has confirmed this to be a problem in CodeView versions
3.0, 3.1, 3.11, 3.12, and 3.14. We are researching this problem and
will post new information here as it becomes available.
More Information:
The CMPXCHG instruction is an assembly instruction available only on
80486 processors.
Sample Code
-----------
; Assemble options needed: none
.486p
_TEXT SEGMENT USE16 'CODE'
start:
; The following define bytes are taken by CodeView
; 3.14 as the "CMPXCHG BX,CX" instruction, but it will
; cause an invalid opcode error when run.
DB 00FH,0A7H,0CBH ;CodeView thinks this is
;CMPXCHG BX,CX
; The following instructions are correctly assembled by
; Macro Assembler 6.00 but are not recognized by
; CodeView 3.14.
CMPXCHG bx,cx ;Correct opcode
;This generates 0F B1 CB
MOV ax,4C00H
INT 21h
_TEXT ENDS
END start
Additional reference words: 3.00 3.10