Cтраница 1
Имя макрокоманды не должно совпадать с мнемоникой машинной команды и псевдокоманды или именем другой макрокоманды. [1]
Если имя макрокоманды одинаково с меткой, появление символа ъ поле операции интерпретируется транслятором как вызов макрокоманды, а появление символа в поле операнда интерпретируется как обращение к метке. [2]
Ввести имя макрокоманды с клавиатуры в -, ч чiч 11 Макрокоманды. [3]
![]() |
Сравнение макровызова и вызова подпрограммы. [4] |
Использование имени макрокоманды в поле операции называется макровызовом, а замена его при трансляции на тело макрокоманды - макрорасширением. [5]
MCALL указано имя макрокоманды, которая не может быть найдена в макробиблиотеках; бператор прямого присваивания содержит ссылку на символ, определение которого также содержит ссылку вперед; сделана ссылка на локальный символ, не существующий в текущем блоке локальных символов. [6]
![]() |
Программа копирования, использующая индексный режим адресации. [7] |
MACRO указываются имя макрокоманды и список формальных аргументов. Чтобы выделить имя макрокоманды, его рекомендуется отделять от списка формальных аргументов пробелом, а последние следует отделять друг от друга запятыми. В частном случае список формальных аргументов может отсутствовать. ENDM может быть пустым или содержать имя макрокоманды. Определение макрокоманды может располагаться в любом месте исходного модуля, но оно всегда должно предшествовать ее вызову. [8]
MCALL, описывающая имя макрокоманды, должна появляться раньше первого обращения к этой макрокоманде. [9]
В поле имени макрокоманды может присутствовать имя, которое является значением параметра, записанного в поле названия прототипа. Мнемонический код операции у макрокоманды должен совпадать с мнемоническим кодом прототипа. [10]
Правила записи имен макрокоманд такие же, как и для имен, задаваемых пользователем. [11]
Макроаызив задается именем макрокоманды в поле операции и списком фактических аргументов в поле операндов. Когда в исходном модуле встречается макровызов, ассемблер формирует макрорасширение посредством замены формальных аргументов, используемых в макроопределении, фактическими аргументами, перечисленными в макровызове. Полученное макрорасширение вставляется в исходный модуль вместо макровызова. Если макровызов содержит больше аргументов, чем имеется в макроопределении, то лишние игнорируются и в листинге макровызов помечается кодом ошибки. Если в макровызове задано меньше аргументов, чем в макроопределении, то при формировании макрорасширения ассемблер считает, что отсутствующим аргументам соответствуют пробелы. [12]
Оператор, определяющий имя макрокоманды, ее формат и параметры. [13]
Оператор прототипа определяет имя макрокоманды, ее формат и параметры. Любая макрокоманда в программе, соответствующая данному макроопределению, должна иметь имя и формат, установленный оператором прототипа. [14]
Параметры Т и имя макрокоманды SAVE допускаются только в ОС ЕС. [15]