IF1 和 IF2
在第一个程序集传递上评估 IF1 块。
如果 OPTION:SETIF2 为 TRUE,则传递每个程序集时都会计算 IF2 块。
语法
IF1;;
IF2;;
备注
有关完整语法,请参阅 IF。
与版本 5.1 不同,MASM 6.1 及更高版本对其第一次传递执行大部分工作,然后根据需要执行尽可能多的后续传递。 相比之下,MASM 5.1 始终在两个源传递中汇编。 因此,可能需要在 MASM 6.1 及更高版本下修改或删除一些依赖传递的构造。
Two-Pass 指令
为了确保兼容性,MASM 6.1 及更高版本支持引用两个传递的 5.1 指令。 其中包括 .ERR1、.ERR2、IF1、IF2、ELSEIF1 和 ELSEIF2。 对于第二次传递构造,必须指定 OPTION SETIF2。 如果没有 OPTION SETIF2,则 IF2 和 .ERR2 指令会导致错误:
.ERR2 not allowed : single-pass assembler
MASM 6.1 及更高版本以不同的方式处理第一次传递构造。 它将 .ERR1 指令视为 .ERR,将 IF1 指令视为 IF。