Справочник по языку Ассемблера IBM PC

     

Вложенность директив условной трансляции


Как мы неоднократно видели в приведенных выше примерах, TASM допускает вложенность условных директив компиляции. Более того, так как вложенность требуется довольно часто, TASM предоставляет набор дополнительных директив формата ELSEIFxxx, которые заменяют последовательность подряд идущих ELSE и IFxxx

в структуре:

IFxxx ; ELSE IFxxx ;... ENDIF ENDIF

Эту последовательность условных директив можно заменить эквивалентной последовательностью дополнительных директив:

IFxxx ;... ELSEIFxxx ;... ENDIF

Наличие xxx в ELSExxx говорит о том, что каждая из директив IF, IFB, IFIDN и т. д. имеет аналогичную директиву ELSEIF, ELSEIFB, ELSEIFIDN и т. д.
В конечном итоге это улучшает читаемость кода. В последнем примере фрагмента макроса, проверяющем, имя какого регистра было передано в макрос, наблюдается подобная ситуация. Последовательность ELSE и IFDIFI можно записать так, как в строке 4:

show macro rg ifdifi ,

goto M_al elseifdifi ,

goto M_ah else exitm endif :M_al ... :M_ah ... endm



Содержание раздела