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



              

Ассемблирование по условию


    До сих пор макрокоманды не отличались от подпрограмм с точки зрения
    как их функционирования, так и использования параметров. Далее, нам
    требуется возмоность ассемблирования в зависимости от условия. Так
    же как ход выполнения подпрограммы может меняться в зависимости от
    некоторых условицй в момент выполнения, так и у макрокоманды должна
    быть возможность изменять в момент транслирования генерацию
    соответствующего машинного кода в зависимости от удовлетворения
    условий.
 
      Макроассемблер фирмы IBM допускает условное ассемблирование. На
    самом деле, условное ассемблирование не обязательно входит только в
    макрокоманду. Программа может использовать условное транслирование
    в любом месте ассемблерного текста. Однако наиболее часто оно
    встречается в макрокомандах. В IBM PC условное транслирование
    поддерживается только Макроассемблером MASM.
 
      Так же, как и выполнение макрокоманд, условное ассемблирование
    происходит во время трансляции, а не выполнения программы. Условное
    транслирование позволяет программисту "запрограммировать" ассемблер
    на транслирование различных последовательостей кодов. Ассемблер
    определяет, что ему транслировать по параметру, известному во время
    ассемблирования. Хотя эта возможность может использоваться
    программой в любой момент ассемблирования, мы изучим прежде всего,
    как она влияет на ассемблирование макрокоманд.
 
      Фиг. 6.4 иллюстрирует условное транслирование при расширении
    макрокоманды FIDIVR сопроцессора 8087. Условное тарнслирование
    требуетя данной макрокоманде из-за разделения переменных в
    ассемблере по типам. Как мы увидим в гл.7, команда, обозначенная
    FIDIVR, может применяться к операндам двух типов. Операнд может
    быть двух- или четырехбайтовым целым числом. Мы хотим, чтобы
    ассемблер выбрал правильный машинный код в зависимости от типа
    операнда. Как мы вмдели, у команды ADD в действительности имеется



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