アセンブル制御擬似命令を使って、指定した範囲の行のアセンブルを行うか、行わないかを指定できます。
| 
 
.IF, .ELIF, .ELSE, .ENDIF 
 | 
 
| 
 | 
 | 
| 
 
.IF 
 | 
 
条件アセンブルブロックの始まりを示します。条件の判定を行います。 
 | 
| 
 
.ELIF 
 | 
 
二つ以上の条件ブロックを記述する場合に、二つ目以降の条件を判定します。 
 | 
| 
 
.ELSE 
 | 
 
全ての条件が偽である場合に、アセンブルを行うブロックの始まりを示します。 
 | 
| 
 
.ENDIF 
 | 
 
条件アセンブルブロックの終了を示します。 
 | 
 
[指定形式]
.IF△条件式 
ボディ 
.ELIF△条件式 
ボディ 
.ELSE 
ボディ 
.ENDIF 
 | 
 
[詳細説明]
.IF, .ELIFに記述した条件に従いアセンブルを行うブロックを制御します。
.IF, .ELIFのオペランドに記述した条件を判定し、真であれば以降に続くボディをアセンブルします。
条件が真である場合にアセンブルされる行は、制御命令".ELIF",".ELSE"および".ENDIF"行の前までです。
条件アセンブルブロック内には、アセンブリ言語ファイルに記述可能な全ての命令を記述できます。
条件式の結果によって、条件アセンブルが行われます。
 
例
[条件式の例]
  sym < 1
  sym+2 < data1
  sym+2 < data1+2
  'smp1' == name
 
[条件アセンブル記述例]
  .IF TYPE==0
    .byte "Proto Type Mode"
  .ELIF TYPE>0
    .byte "Mass Produciton Mode"
  .ELSE
    .byte "Debug Mode"
  .ENDIF
 
[備考]
.IF, .ELIF制御命令のオペランドには、必ず条件式を記述してください。
.IF, .ELIF制御命令とオペランドの間には、必ず空白文字またはタブを記述してください。
条件式は、制御命令のオペランドに1つだけ記述できます。
条件式には、必ず条件演算子を記述してください。
次に示す演算子が記述できます。
表 5.34  | .IF および.ELIF 制御命令の条件演算子  | 
 
| 
 | 
 | 
| 
 
> 
 | 
 
左辺値が右辺値より大きい場合に真となります 
 | 
| 
 
< 
 | 
 
左辺値が右辺値より小さい場合に真となります 
 | 
| 
 
>= 
 | 
 
左辺値が右辺値より大きいか等しい場合に真となります 
 | 
| 
 
<= 
 | 
 
左辺値が右辺値より小さいか等しい場合に真となります 
 | 
| 
 
== 
 | 
 
左辺値と右辺値が等しい場合に真となります 
 | 
| 
 
!= 
 | 
 
左辺値と右辺値が等しくない場合に真となります 
 | 
 
条件式は符号付き32ビットで演算します。
条件演算子の左辺および右辺には、シンボルが記述できます。
条件演算子の左辺および右辺には、式が記述できます。式は、「4.1.5 オペランド部の記述方法」の「(2) 式」に従って記述してください。
条件演算子の左辺および右辺には、文字列が記述できます。文字列は、必ずシングルクォーテーション(')またはダブルクォーテーション(")で囲って記述してください。このとき、文字列の大小は、文字コードの値で判定されます。
 
例)
"ABC"<"CBA"   414243 < 434241で真となります。
"C" < "A"     43 < 41で偽となります。
  
条件演算子の前後には、空白文字またはタブが記述できます。
条件式は、制御命令".IF"および".ELIF"のオペランドに記述できます。
演算結果のオーバフローは判断しません。
シンボルは、前方参照(本制御命令行より後に定義されているシンボルを参照)はできません。
前方参照のシンボルや、未定義のシンボルを記述した場合は、値を0として式を判定します。