IF1 と IF2
IF1 ブロックは、最初のアセンブリ パスで評価されます。
IF2 ブロックは、OPTION:SETIF2 が TRUE の場合に、すべてのアセンブリ パスで評価されます。
構文
IF1;;
IF2;;
解説
完全な構文については、「IF」を参照してください。
バージョン 5.1 とは異なり、MASM 6.1 以降では、最初のパスでほとんどの作業を行い、必要に応じて後続のパスを実行します。 これに対し、MASM 5.1 では、常に 2 つのソース パスでアセンブルします。 その結果、MASM 6.1 以上では、パス依存のコンストラクトの修正または削除が必要となる場合があります。
Two-Pass ディレクティブ
互換性を確保するために、MASM 6.1 以上は、2 つのパスを参照する 5.1 ディレクティブをサポートしています。 これには、.ERR1、.ERR2、IF1、IF2、ELSEIF1、および ELSEIF2 が含まれます。 2 番目のパス コンストラクトの場合は、OPTION SETIF2 を指定する必要があります。 OPTION SETIF2 を指定しない場合は、IF2 ディレクティブと .ERR2 ディレクティブによってエラーが発生します。
.ERR2 not allowed : single-pass assembler
MASM 6.1 以上では、最初のパス コンストラクトを処理する方法が異なります。 .ERR1 ディレクティブは .ERR として、IF1 ディレクティブは IF として扱われます。