FIX: Incorrect Code Generated If Operand Is [esp][esp]Last reviewed: September 16, 1997Article ID: Q79159 |
6.00 | 6.00
MS-DOS | OS/2
kbtool kbfixlist kbbuglist
The information in this article applies to:
SYMPTOMSIn 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] CAUSEThe operand [esp][esp] is not supported in the Intel instruction set. An error such as:
error A2029 : multiple base registers not allowedshould have been generated by the assembler.
STATUSMicrosoft has confirmed this to be a problem in MASM version 6.0. This problem was corrected in MASM version 6.0a.
MORE INFORMATIONA 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 .STACK 4096 CODE32 SEGMENT PUBLIC USE32 main PROC near lea esi, [esp][esp] ; An error A2029 should be generated. retmain ENDP CODE32 ENDS END
|
Additional reference words: 6.00 buglist6.00 fixlist6.00a
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |