Turbo Assembler 3.0. Руководство пользователя

Использование в макрокомандах символа &


Символ & в теле макрокоманды имеет специальное значение. В общем случае & отделяет имя формального аргумента от окружающего текста, благодаря чему Турбо Ассемблер может распознавать его при подстановке. Если, например, имеется следующее тело макрокоманды:

sym&foo: DB 'It is &foo time'

и если вы при вызове данной макрокоманды присвоите foo текстовую строку party, то фактическим включаемым в модуль текст будет сле- дующее:

symparty: DB 'It is party time'

В качестве другого примера можно привести следующий:

foo&sym: DB 'We are in O&foo&o'

Если вы при вызове данной макрокоманды присвоите foo тексто- вую строку hi, то фактическим включаемым в модуль текст будет следующее:

hisym: DB 'We are in Ohio'

Приведем правила для символа &:

- вне заключенных в кавычки строк символ & используется как разделитель;

- внутри заключенной в кавычки строки и после двоеточия, ко- торое не находится в заключенной в кавычки строке в режиме Ideal, символ & должен предшествовать формальному аргумен- ту (чтобы этот аргумент мог распознаваться);

- при расширении макрокоманды Турбо Ассемблер удаляет один символ & из группы таких символов.

Последний пункт дает возможность помещать внутри макрокоманд макроопределения, требующие символа &. Турбо Ассемблер будет уда- лять только один символ & из группы.



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