Условное ассемблирование. Операторы, следующие за директивой, до обнаружения директивы ELSE или ENDIF, страница 2

Данная директива является дополнительной по отношению к директиве IFSAME. Если указанные две строки не являются идентичными, то будут ассемблироваться операторы, следующие за данным оператором вплоть до директивы ELSE или директивы ENDIF. Если указанные две строки являются идентичными, то операторы, следующие за данным оператором вплоть до директивы ELSE или директивы ENDIF, ассемблироваться не будут. Синтаксические правила, управляющие формой строк, идентичны правилам, приведенным для директивы IFSAME. За примерами использования данной директивы обращайтесь к описанию директивы IFSAME.

IFEXT <метка>

Данная директива будет выполнять поиск в таблице символов (идентификаторов) и, если <метка> была объявлена как внешняя (EXTERNAL), то будут ассемблироваться операторы, следующие за данным оператором вплоть до директивы ELSE или директивы ENDIF. Если метка не найдена, то будет выдаваться сообщение об ошибке.

IFNEXT <метка>

Данная директива будет выполнять поиск в таблице символов (идентификаторов) и, если <метка> не была объявлена как внешняя (EXTERNAL), то будут ассемблироваться операторы, следующие за данным оператором вплоть  до директивы ELSE или директивы ENDIF. Если метка не найдена, то будет выдаваться сообщение об ошибке.

IFABS <метка>

IFNREL

Данная директива будет выполнять поиск <метки> в таблице символов (идентификаторов) и, если <метка> была объявлена как абсолютная (то есть, неперемещаемая), то будут ассемблироваться операторы, следующие за данным оператором вплоть до директивы ELSE или директивы ENDIF. Внешние метки считаются перемещаемыми. Если метка не найдена, то будет выдаваться сообщение об ошибке.

IFREL <метка>

IFNABS

Данная директива будет выполнять поиск <метки> в таблице символов (идентификаторов) и, если <метка> была объявлена как перемещаемая, то будут ассемблироваться операторы, следующие за данным оператором вплоть до директивы ELSE или директивы ENDIF. Внешние метки считаются перемещаемыми. Если метка не найдена, то будет выдаваться сообщение об ошибке.

IFMA <выражение>

Данная директива предназначена для использования внутри макроса, она будет осуществлять сканирующий просмотр строки вызова макроса с целью поиска аргумента с номером, заданным значением <выражения>. Если этот аргумент существует, то будут ассемблироваться операторы, следующие за данным оператором вплоть до директивы ELSE или директивы ENDIF. Если этот аргумент не существует, то операторы, следующие за данным оператором вплоть до директивы ELSE или директивы ENDIF, ассемблироваться не будут. Признак отсутствия аргументов может быть задан посредством тождества <выражение>=0. В этом случае если в строке вызова макроса никакие аргументы не присутствуют, то будут ассемблироваться последующие операторы, а если аргументы в строке вызова макроса имеются, то последующие операторы ассемблироваться не будут. За примерами использования данной директивы обращайтесь к разделу данного руководства, посвященному макросам.

IFNMA

Данная директива является дополнительной по отношению к директиве IFMA; она будет осуществлять сканирующий просмотр строки вызова макроса с целью поиска аргумента с номером, заданным значением <выражения>. Если этот аргумент отсутствует, то будут ассемблироваться операторы, следующие за данным оператором вплоть до директивы ELSE или директивы ENDIF. Если этот аргумент существует, то операторы, следующие за данным оператором вплоть до директивы ELSE или директивы ENDIF, ассемблироваться не будут. Существование каких-либо аргументов в принципе может быть определено посредством тождества <выражение>=0. В этом случае если в строке вызова макроса имеется хотя бы один аргумент, то будут ассемблироваться последующие операторы. Если в строке вызова макроса никакие аргументы не присутствуют, то последующие операторы ассемблироваться не будут. За примерами использования данной директивы обращайтесь к разделу данного руководства, посвященному макросам.

ELSE

Служит маркером начала операторов, которые должны ассемблироваться в случае, если условие в любой из представленных выше директив класса IF является ложным.

ENDC

ENDIF