FIX: MASM 6.0 May Incorrectly Generate A2032 for EQULast reviewed: September 16, 1997Article ID: Q80120 |
6.00 6.00a 6.00b | 6.00 6.00a 6.00b
MS-DOS | OS/2kbtool kbfixlist kbbuglist The information in this article applies to:
SYMPTOMSThe Microsoft Macro Assembler may incorrectly generate the following error:
A2032: invalid use of register CAUSEThis is demonstrated on lines eight and nine in the sample code below. The error occurs because the LEA and MOV instructions on those lines use an equate and a register as an address. In the example, table1 is equated to the value of the location counter, "$", and the register is BP.
RESOLUTIONTo work around the problem, use the LABEL directive rather than an equate of the current location counter.
STATUSMicrosoft has confirmed this to be a problem in MASM versions 6.0, 6.0a, and 6.0b. This problem was corrected in MASM for MS-DOS version 6.1.
MORE INFORMATIONThe following sample code can be used to demonstrate the problem.
Sample Code; Assemble options needed: none code SEGMENT word public 'code' ASSUME cs:code table1 EQU $ ;table1 LABEL word ; Use this line instead of previous one.table2 DW 0
lea di, table1[bp] ; line 8 mov ax, table1[bp] ; line 9code ENDS END
|
Additional reference words: 6.00 6.00a 6.00b buglist6.00 buglist6.00a
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |