ID Number: Q79159
6.00 | 6.00
MS-DOS | OS/2
buglist6.00 fixlist6.00a
Summary:
SYMPTOMS
In the Microsoft Macro Assembler (MASM) version 6.0, incorrect code
is generated for instructions using operand [esp][esp], such as the
following instructions:
lea esi, [esp][esp]
mov esi, [esp][esp]
CAUSE
The operand [esp][esp] is not supported in the Intel instruction
set. An error such as
error A2029 : multiple base registers not allowed
should have been generated by the assembler.
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:
A listing file from the following program will show that the
instruction lea esi, [esp][esp] is encoded as 8D 34 24. This is
incorrect.
Sample Code
-----------
; Assembler options needed: none
.386
.MODEL FLAT
CODE32 SEGMENT PUBLIC USE32
main proc near
lea esi, [esp][esp] ; An error A2029 should be generated.
ret
main endp
CODE32 ENDS
.STACK 4
END
Additional reference words: 6.00