Microsoft KB Archive/120067

= FIX: .IF with Multiple Tests Adds a JMP Instruction =

Article ID: 120067

Article Last Modified on 2/11/2004

-

APPLIES TO


 * Microsoft Macro Assembler 6.1 Standard Edition

-



This article was previously published under Q120067



SYMPTOMS
If two or more values known at assembly time evaluate as TRUE, .IF (below) will add a JMP instruction. In this first example, only the NOP is assembled: .IF 1 nop .ENDIF In this second example, a JMP instruction is added: .IF 1 || 3 nop .ENDIF If you use a register, as in this third example, the result is a conditional JMP to the location following the .IF: .IF ax || 3 nop .ENDIF The code runs as expected, despite the extra instructions.



RESOLUTION
To eliminate the extra generated code, replace the "||" with an "OR".



STATUS
Microsoft has confirmed this to be a bug in MASM version 6.1. This problem was corrected in MASM version 6.11.

Additional query words: 6.10 buglist6.10 fixlist6.11

Keywords: kbfix KB120067

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.