FIX: DOSXNT DX1020 Error Using .WHILE and Processor FlagLast reviewed: September 16, 1997Article ID: Q97840 |
6.10 6.10a | 6.00
MS-DOS | OS/2kbtool kbfixlist kbbuglist The information in this article applies to:
SYMPTOMSMicrosoft Macro Assembler (MASM) version 6.1, and 6.1a may generate a DOSXNT DX1020 general protection fault when using the .WHILE directive to test the state of a processor flag (SIGN?, ZERO?, CARRY?, PARITY?, or OVERFLOW?). The error occurs if the processor flag is tested by itself or is negated and tested. For example:
.WHILE SIGN? .WHILE !SIGN?MASM version 6.0 running under OS/2 version 1.21 may generate a trap 13 in the above situation.
RESOLUTIONTo work around this problem, OR the desired processor flag with zero. For example:
.WHILE SIGN? || 0This work around will also work with ZERO?, CARRY?, PARITY?, and OVERFLOW?.
STATUSMicrosoft has confirmed this to be a problem in MASM versions 6.0, 6.1, and 6.1a. This problem was corrected in MASM version 6.11.
MORE INFORMATIONThe following sample code can be used to demonstrate the problem.
Sample Code; Assemble options needed: none .MODEL small .STACK 4096 .DATA .CODE .startup .WHILE SIGN? ; generates DOSXNT general protection fault nop .ENDW .WHILE SIGN? || 0 ; avoids the protection fault nop .ENDW .exit 0END
|
Additional reference words: 6.00 6.10 6.10a unhandled exception buglist6.00
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |