構文 <定数式> EQ <定数式> ; 等しい <定数式> NE <定数式> ; 等しくない <定数式> LT <定数式> ; より小さい <定数式> LE <定数式> ; より小さいか等しい <定数式> GT <定数式> ; より大きい <定数式> GE <定数式> ; より大きいか等しい
これらの演算子は定数式の大小を比較します。比較の結果が条件を満たしていれば真になり、定数 FFFFh を返します。条件を満たしていなければ偽になり、定数 0 を返します。
適用可能な式
これらの演算子は定数式同士、またはラベル同士の演算に適用できます。
例 10 EQ 3 ; 0 10 NE 3 ; 0FFFFh 10 LT 3 ; 0 10 LE 3 ; 0 10 GT 3 ; 0FFFFh 10 GE 3 ; 0FFFFh
ラベルの比較
V2.07 以降では、ラベル同士を比較できるようになりました。次のコードは正当です。アセンブルすると「OK」と表示されます。
D1 DB 1 D2 DB 2 IF (OFFSET D1) LT (OFFSET D2) ECHO OK ENDIF
この場合、LT 演算子の左右の式は定数ではありませんが、その差は定数なので判定可能です。なお、Microsoft MASM では V6.0 以降でこのような(定数でない式を比較する)条件判断が可能になっています。
これに対して、次のコードはアセンブルできません。
D1 DB 1 D2 DB 2 IF (OFFSET D2) GE 10 ECHO OK ENDIF
これは、「OFFSET D2」がアセンブル時には決定できないためです。「OFFSET D2」と「OFFSET D1」の差なら1であることがわかりますが、「OFFSET D1」や「OFFSET D2」の値自体はリンク後でないと決定できません。