Cтраница 2
Оператор прототипа определяет имя макрокоманды, ее формат и параметры. Любая макрокоманда в программе, соответствующая данному макроопределению, должна иметь имя и формат, установленный оператором прототипа. [16]
Макрокоманда используется для вызова макроопределения. Результат обработки макроопределения ассемблером существенно зависит от операндов макрокоманды, так как значения операндов макрокоманды замещают используемые в макроопределении символические параметры. Размещение и порядок операндов в макрокоманде определяются размещением и порядком символических параметров в поле операндов оператора прототипа. В связи с этим различаются позиционные, ключевые и смешанные макрокоманды. [17]
Если после параметра следует знак равенства, этот параметр заносится в таблицу ключевых параметров в качестве ключевого слова вместе со стандартным значением, если оно есть. Запятая после последнего в строке параметра и знак, отличный от пробела в колонке указателя продолжения, означают, что прототип макрокоманды продолжается в следующей строке. В этом случае управление возвращается блоку управления трансляцией, который выбирает очередную строку исходной программы, после чего трансляция оператора прототипа продолжается. [18]
Поле комментариев используется для пояснения и описания оператора. Заполнять поле комментариев не обязательно. В операторах, в которых запись операндов не обязательна, но желательна запись комментариев, отсутствие операндов должно быть указано запятой, перед которой и после которой должен быть по крайней мере один пробел. В операторах прототипа макрокоманд и в макрокомандах без операндов комментарии не допускаются. [19]
Этот блок ( рис. 3.18) получает управление от блока управления трансляцией при обнаружении в программе макроопределения. Обработка начинается с занесения параметра из поля названия, если он есть, в таблицу позиционных параметров. Имя макрокоманды, следующее за полем названия, переносится в таблицу макрокоманд. Если в операторе прототипа имеются позиционные параметры, то они непосредственно следуют за именем макрокоманды. Эти параметры последовательно переносятся в таблицу позиционных параметров. Одновременно подсчитывается число позиционных параметров. Появление параметра, после которого следует знак равенства или пробел, служит сигналом окончания формирования таблицы позиционных параметров. [20]
Для того чтобы продолжить оператор на другую строку, необходимо записать любой знак, отличный от пробела, в колонку, следующую за колонкой конца оператора и называемую колонкой указателя продолжения. В строке продолжения в колонках слева от колонки продолжения должны быть пробелы. Для транслятора АССЕМБЛЕР F допускаются две строки продолжения, для транслятора АССЕМБЛЕР Е - одна строка. Исключение составляют макрокоманды и операторы прототипа, которые могут иметь любое количество строк продолжения. [21]
Операторы ассемблера записываются на стандартных бланках. Позиции на бланке соответствуют позициям на перфокарте или позициям в исходном операторе, вводимом, например, с клавиатуры абонентского пункта. Исключение составляют макрокоманды и оператор прототипа в макроопределении, для которых допускается необходимое число строк продолжения. [22]
Модельные операторы предназначены для создания из них операторов языка ассемблера во время макрогенерации и условного ассемблирования. В качестве модельных операторов могут использоваться машинные команды, команды ассемблера ( за исключением команд условного ассемблирования ICTL, OPSYN, MACRO, MEND), макрокоманды и операторы комментариев. Модельные операторы в макроопределении следуют за оператором прототипа. [23]