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



         

Аргументы макрокоманд - часть 4


 
            Фиг. 6.3. Макрокомнда FLDCW
 
    этого макрокоманда и использует параметр SOURCE. Такая организация
    макрокоманды FLDCW позволяет программировать весьма естественным
    способом. Точно так же как пишется
 
      INC MEMORY_LOCATION
 
    вы можно написать команду для сопроцессора 8087
 
      FLDCW MEMORY_LOCATION
 
      Это справедливыо не только для адресов, заданных символическими
    именами, но и для других способов адресации. На Фиг. 6.3 показано
    несколько примеров задания операнда с помощью адресации по базе и
    индексу. Так как макропроцессор воспринимает параметр как какой-то
    фрагмент текста, то параметр может быть образован любой символьной
    строкой, какую вы пожелаете.
 
      Можно задать макрокоманду и с несколькими параметрами.
    Единственное, что ограничивает число параметров макрокоманды, это
    длина ассемблерной строки. Все, что следует за оператором MACRO
    интерпретируется макропроцессором как параметр. Для разделения
    символических имен в определении макрокоманды пользуются запятыми.
    Оператор MACRO с тремя параметрами будет выглядеть следующим
    образом:
 
      EXAMPLE MACRO ARG1, ARG2, ARG3
 
    Аналогично, при вызове макрокоманды вы должны задать значение
    каждого из параметров. Если вы хотите пропустить какой-то параметр,
    то ассемблер подставит вместо него символьную строку нулевой длины.
    Иногда это полезно, но часто приводит к неправильной трансляции.
    Если макрокоманда имеет более одного параметра, то при вызове
    макрокоманды относящийся к параметрам текст разделяется запятыми.
    Это в точности совпадает со способом задания нескольких параметров
    к любой из команд микропроцессора 8088, поэтому будет вполне
    естественным для вас. Вызов макрокоманды с тремя параметрами может
    выглядеть так:
 
           EXAMPLE 5, [BX], MEMORY_BYTE
 
    В следующем примере вы увидите некоторые возможности множествен-
    ности параметров.



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