FIX: Relational Operators with MOV May Evaluate IncorrectlyLast reviewed: September 10, 1997Article ID: Q26270 |
5.00 5.10 5.10a
MS-DOS
kbtool kbfixlist kbbuglist
The information in this article applies to:
SYMPTOMSIn the Microsoft Macro Assembler (MASM) versions 5.0, 5.1, and 5.1a, some of the relational operators evaluate to the wrong value when used with a MOV instruction.
STATUSMicrosoft has confirmed this to be a problem in MASM versions 5.0, 5.1, and 5.1a. This problem was corrected in MASM version 6.0.
MORE INFORMATIONThe following listing-file sections are examples of this problem. It is important to note that FFFF=true, and 0000=false. It is also important to note that when FFFFh is used with the GT, GE, LE, and LT operators, it is interpreted as the largest positive number, not as -1.
Sample Listing File
1 .MODEL SMALL 2 .CODE 3 0000 B8 0000 MOV AX, 0FFFFH GT -1 4 0003 B8 FFFF MOV AX, 0FFFFH LE -1 5 END*******************************************************
1 .386 2 .MODEL SMALL 3 .CODE 4 0000 66| B8 FFFF MOV AX, -1 GE 0FFFFFFFFH 5 0004 66| B8 FFFF MOV AX, 0FFFFFFFFH LE -1 6 0008 66| B8 0000 MOV AX, 0FFFFFFFFH GT -1 7 000C 66| B8 0000 MOV AX, -1 LT 0FFFFFFFFH 8 END |
Additional reference words: 5.00 5.10 5.10a 6.00 buglist5.00 buglist5.10
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |