Поделиться через


IF1 и IF2

Блок IF1 вычисляется при первом проходе сборки.

Если блок IF2 вычисляется при каждом проходе сборки, если ПАРАМЕТР:SETIF2 имеет значение TRUE.

Синтаксис

IF1;;

IF2;;

Замечания

См. раздел IF для полного синтаксиса.

В отличие от версии 5.1, MASM 6.1 и выше делает большую часть своей работы над первым проходом, а затем выполняет столько последующих проходов, сколько необходимо. В отличие от этого, MASM 5.1 всегда собирается в двух исходных проходах. В результате может потребоваться пересмотреть или удалить некоторые сквозные конструкции в MASM 6.1 и более поздних версиях.

Двухпроходные директивы

Чтобы обеспечить совместимость, MASM 6.1 и более поздних версий поддерживают директивы 5.1, ссылающиеся на два прохода. К ним относятся. ERR1, . ERR2, IF1, IF2, ELSEIF1 и ELSEIF2. Для конструкций второго прохода необходимо указать OPTION SETIF2. Без ПАРАМЕТРА SETIF2, IF2 и . Директивы ERR2 вызывают ошибку:

.ERR2 not allowed : single-pass assembler

MASM 6.1 и более поздних версий обрабатывают конструкции первого прохода по-разному. Он обрабатывает . Директива ERR1 как . ERR и директива IF1 как IF.

См. также

Справочник по директивам
Грамматика MASM BNF