PRB: Error A2032 Using Indexed AddressingLast reviewed: January 9, 1995Article ID: Q119872 |
The information in this article applies to:
SYMPTOMSAssembling a line of code that performs indexed addressing, such as the following:
mov dx,mylabel-2[bx]produces the following error:
error A2032: invalid use of registerThe same line of code assembles without error under MASM version 5.1.
CAUSEThe index operator '[]' is now at the very top of the MASM operator precedence list, while the binary "+" and "-" operators are in the lower half. So, for example, if the expression
2 - 3[bx]is no longer equivalent to
2 - 3 + bxbut rather to
2 - (3 + bx) ; or 2 - 3 - bxthen it is the "- bx" that is causing the A2032 error.
RESOLUTIONAssemble using the OPTION M510 directive, the /Zm switch (which implies the OPTION M510), or use one of the following syntaxes:
mov dx, (mylabel-2)[bx] mov dx, mylabel-2+[bx] mov dx, mylabel[bx]-2NOTE: The OPTION M510 is used for compilation with maximum MASM version 5.10 compatibility.
|
Additional reference words: 6.00 6.00a 6.00b 6.10 6.10a
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |