![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Оператор безусловного перехода и метки макроопределения
Возможный формат оператора: MGO макрометка Концептуально важным понятием является макрометка. Макрометка может стоять перед оператором Макроязыка или перед оператором языка Ассемблера. Макрометки не имеют ничего общего с метками в программе. Передача управления на макрометку означает то, что при обработке макроопределения следующим будет обрабатываться оператор, помеченный макрометкой. Макрометки должны иметь какой-то признак, по которому их имена отличались бы от имен программы и переменных макроопределения. Например, если имена переменных макроопределения начинаются с символа &, то имя макрометки может начинаться с & &. Оператор условного перехода Возможный формат оператора: MIF условное_выражение макрометка Если условное_выражение имеет значение " истина", обработка переходит на оператор, помеченный макрометкой, иначе обрабатывается следующий оператор макроопределения. Условные блоки Возможный формат оператора: IF условное_выражение операторы_макроопределения_блок1 ENDIF ELSE операторы_макроопределения_блок2 ENDIF Если условное_выражение имеет значение " истина", обрабатываются операторы макроопределения от оператора IF до оператора ENDIF, иначе обрабатываются операторы макроопределения от оператора ESLE до оператора ENDIF. Как и в языках программирования блок ELSE - ENDIF не является обязательным. Условные выражения описаны выше. Обычно предусматриваются специальные формы: IFDEF имя IFNDEF имя проверяющие просто определено или не определено данное имя. Операторы условных блоков довольно часто являются не операторами Макроязыка, а директивами самого языка Ассемблера. Операторы повторений Операторы повторений Макроязыка (или директивы повторений языка Ассемблера) заставляют повторить блок операторов исходного текста, возможно, с модификациями в каждом повторении. Операторы повторений играют роль операторов цикла в языках программирования, они не являются обязательными для макроязыка, так как цикл можно обеспечить и условным переходом. Как и в языках программирования, в Макроязыке может быть несколько форм операторов повторения, приведем некоторые из возможных форм: MDO выражение блок_операторов_макроопределения ENDMDO выражение должно иметь числовой результат, обработка блока операторов повторяется столько раз, каков результат вычисления выражения. MDOLIST переменная_макроопределения, список_выражений блок_операторов_макроопределения ENDMDO обработка блока операторов повторяется столько раз, сколько элементов имеется в списке_выражений, при этом в каждой итерации переменной_макроопределения присваивается значение очередного элемента из списка_выражений. MDOWHILE условное_выражение блок_операторов_макроопределения ENDMDO обработка блока операторов повторяется до тех пор, пока значение условного_выражения - " истина". Завершение обработки Обработка макроопределения завершается при достижении оператора MEND. Однако, поскольку алгоритм обработки макроопределения может разветвляться, должна быть предусмотрена возможность выхода из обработки и до достижения конца макроопределения. Эта возможность обеспечивается оператором MEXIT. Операндом этого оператора может быть код_серьезности.
|