Вы можете использовать директиву условного ассемблирования IFxxx для определения блока кода, который включается в объектный файл при удовлетворении определенных условий (таких как определе- ние идентификатора или установка какого-то значения). Приведем синтаксис оператора условного ассемблирования:
IFxxx тело_условия_true EMDIF
или IFxxx тело_условия_true ELSE тело_условия_false ENDIF
где IFxxx представляет следующие директивы:
IF IF1 IF2 IFDEF IFNDEF IFB IFNB IFIDN IFIDNI IFDIF IFDIFI
Каждая директива условного ассемблирования IFxxx задает конкретное условие, при вычислении которого получается истинное (true) или ложное (false) значение. Если условие имеет значение true, то выполняется ассемблирование и помещение в объектный файл блока ассемблируемого кода "тело_условия_true". Если при вычисле- нии условия получается значение false, то Турбо Ассемблер пропус- кает "тело_условия_true" и не включает его в объектный файл. При наличие директивы ELSE, если условие имеет значение false, то ас- семблируется и выводится в объектный файл блок "тело_усло- вия_false". Если условие имеет значение true, то этот блок игно- рируется. Условный блок завершается директивой ENDIF.
Кроме особых случаев директив IF1 и IF2 (которые мы обсудим позднее) два описанных блока кода являются взаимноисключающими: в объектный файл включается либо "тело_условия_true", либо "тело_ условия_false", но не оба блока одновременно. Кроме того, если вы используете форму IFxxx.ELSE.ENDIF, один из блоков будет обя- зательно включаться в объектный файл. Если используется форма IFxxx.ENDIF, то "тело_условия_true" может включаться или не включаться в объектный файл, в зависимости от условия.
При использовании вложенных директив IF и ELSE директива ELSE всегда соответствует ближайшей директиве IF.
В следующем примере test является идентификатором, который управляет включением кода (если идентификатор не определен, то генерируется соответствующий блок кода) Идентификатор color уста- навливается в ненулевое значение, если дисплей цветной, и равен 0, если дисплей монохромный.