Cтраница 2
В некоторых случаях средства Макро позволяют проводить дополнительную оптимизацию в зависимости от фактических аргументов при вызове макрокоманды, а также выявлять семантические ошибки. [16]
Данные директивы обеспечивают связь задач с управляющей программой, В программах на макроассемблере системные директивы представляют собой вызовы макрокоманд из системной макробиблиотеки, В программах на фортране системные директивы - это зызо. [17]
NLIST без аргументов является обеспечение возможности избирательной распечатки макрорасширения с выходом на уровень, имевший место во время вызова макрокоманды. [18]
Прототип представляет обычную программу, но, когда макрокоманда вызывается в программе, фиктивные аргументы в ней заменяются соответствующими символическими наименованиями из вызова макрокоманды. [19]
Три директивы Макроассемблера позволяют пользователю определить некоторые атрибуты макрокоманды: количество аргументов в вызове макрокоманды, количество знаков в аргументе, код режима адресации аргумента в вызове макрокоманды. [20]
В приведенной директиве условной трансляции, если FLAG не определен, то проводится его определение путем присваивания ему значения. При последующих вызовах макрокоманды значение FLAG будет определено и рассматриваемой директивой не изменяется. [21]
Можно писать макровызовы в теле макроопределения, причем вызываемая макрокоманда не обязательно должна быть к этому моменту определена. Вложенные в макроопределение вызовы макрокоманд необходимо определить к моменту использования внешней макрокоманды. [22]
В момент начала ассемблирования определены только макрокоманды первого уровня, и, следовательно, только к ним можно обращаться обычным способом; в этот момент еще не раскрыты макроопределения второго и последующих уровней. В дальнейшем появляется возможность вызова макрокоманд любого уровня, естественно, при соблюдении соответствующей очередности. [23]
Формально описанная последовательность команд называется макроопределением. Макроопределение и команда обращения к макроопределению ( вызов макрокоманды) определяют макрорасширение. [24]
Поле операции в исходном операторе следует за полем метки. Это поле может содержать мнемоническое обозначение инструкции, директиву транслятора или вызов макрокоманды. [25]
При расширении вложенных макрокоманд производится удаление внешней пары угловых скобок из передаваемых аргументов на каждом уровне вложения. Угловые скобки поэтому желательно указывать в макроопределении, а не в вызове внешней макрокоманды. [26]
Данные директивы обеспечивают связь задач с управляющей программой. В программах на Макроассемблере системные директивы с точки зрения программной реализации представляют вызовы макрокоманд, расширяющихся через макроопределения из системной макробиблиотеки. В программах на Фортране системные директивы представляют вызов подпрограмм из системной библиотеки объектных модулей. [27]
PRINT используются для вывода сообщений во время второго прохода трансляции. Они могут быть использованы в любом месте программы для вывода сообщений об ошибочных вызовах макрокоманд либо для вывода предупреждающих сообщений при условной трансляции. [28]
Аргументы, которые содержат разделительные знаки, должны быть заключены в угловые скобки. Аргументы, заключенные в скобки, редко используются в макроопределениях, но чаще используются при вызовах макрокоманд. [29]
Автоматически создаваемые локальные символы особенно полезны, когда в макрорасширении необходима метка. Создание таких меток в макрорасширении позволяет, с одной стороны, уменьшить число аргументов в вызове макрокоманды ( может быть опущен фактический аргумент, определяющий метку в макрорасширении); с другой стороны, позволяет избежать многократного определения меток, возможного при каждом использовании макрокоманды, если соответствующий фактический аргумент задан некорректно. [30]