The information in this article applies to:
SYMPTOMSMicrosoft Macro Assembler (MASM) generates incorrect code when an indirect addressing using 32-bit registers uses a label located in a 16-bit segment as the first argument in the list that forms the indirect address. CAUSEWhen the first operand in the list of operands that forms the indirect address is a label located in a 16-bit segment, MASM interprets the indirect address as a 16-bit reference to the segment. RESOLUTIONTo work around this problem, perform one of the following two steps:
STATUSMicrosoft has confirmed this to be a problem in MASM versions 6.0, 6.0a, 6.0b, 6.1, and 6.1a. This problem was corrected in MASM for MS-DOS version 6.11. MORE INFORMATION
The evaluation order precedence of the operands in indirect addressing
is left to right inside the brackets, followed by the label outside
the brackets, if one is present. MASM generates incorrect code when
the code uses any combination of 32-bit registers and a label to
calculate an address when the label is located in a 16-bit segment and
the label is listed as the first operand enclosed in brackets.
Sample Code
Additional query words: 6.00 6.00a 6.00b 6.10 6.10a buglist6.00a buglist6.00b buglist6.10 buglist6.10a fixlist6.11
Keywords : |
Last Reviewed: January 6, 2000 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |