Assembler для начинающих



         

Макрооператоры - часть 2


 
            000A                     CODE    ENDS
                                           END
 
             Фиг. 6.8 Использование команды LOCAL
    возникает. Однако при ее повторном использовании в той же
    программе, метка AAAAA появляется второй раз. Ассемблер не может
    допустить двух меток с одним и тем же именем в одной программе и
    отмечает это как ошибку.
      Проблема будет разрешена, если объявить метку AAAAA локальной
    (LOCAL) для данной макрокоманды. Тогда ассемблер установит сформи-
    рованное им уникальное имя для каждого случая применения метки
    AAAAA. Встретив имя типа LOCAL впервые, ассемблер меняет его на имя
    "??0000". Во второй раз - на имя "??0001" и т.д. Каждое имя в
    транслируемой программе будет уникальным, поэтому никаких ошибок не
    возникнет. На Фиг. 6.8 показано использование оператора LOCAL.
    Здесь макрокоманда PAUSE устанавливает счетчик цикла и затем орга-
    низует цикл с помощью метки, объявленной LOCAL. Данная макрокоманда
    позволяет организовывать в выполнении программы паузу переменной
    длительности. Если в макрокоманде необходимо использовать описатель
    LOCAL, то он должен быть первым оператором макрокоманды, сразу же
    следуя за оператором MACRO.
 
      Символ                  Значение
     ---------------------------------------------------------------
      ;;    Комментарий, имспользуемый только в макроопределении
      &     Соединение текста с параметром
      !     Вводить следующий символ без интерпретации
      %     Преобразовать следующее выражение в значение
     ---------------------------------------------------------------
                  Фиг. 6.9 Макросимволы
 
      Существуют специальные символы, которые помогут вам управлять
    макрокомандами и их параметрами. В таблице на Фиг. 6.9 показаны
    четыре таких символов с объяснением их значений.
 
      На Фиг.6.10 приведен ассемблерный листинг программы, в которой
    эти символы применяются. Мы уже видели символ ";;" в некоторых



Содержание  Назад  Вперед