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



         

Команды пересылки данных - часть 4


    обрабатывает особую ситуацию в своей собственной подпрограмме,
    встроенный обработчик особой ситуации пометит загруженное значение,
    как "неопределенное".  Это означает, что дальнейшие действия с этим
    числом дадут неопределенные результаты.  Если вы сделаете ошибку,
    сопроцессор 8087 проследит за тем, чтобы она не осталась
    незамеченной.
 
      Оставшаяся разновидность команды загрузки берет один из
    элементов стека и помещает его в стек.  Например, команда
 
      FLD    ST0
 
      дублирует вершину стека.  После нее два верхних элемента имеют
    одинаковые значения.  Команда
 
      FLD    ST3
 
      помещает копию четвертого элемента стека в стек.  Заметим, что
    число, которое было раньше ST3, стало теперь ST4.
 
      Давайте посмотрим на машинный язык, в действительности
    формируемый этими командами.  Поскольку этот текст порождает
    команды процессора 8087 с помощью макрокоманд, сравнительно легко
    увидеть, откуда появляются различные части команд.      Во=первых,
    каждая команда начинается с байта 09BH.  Это - команда WAIT.  Как
    вы помните, сопроцессор 8087 должен быть синхронизирован с работой
    микропроцессора 8088.  Если микропроцессор 8088 попытается
    выполнить следующую команду сопроцессора 8087 до того, как
    сопроцессор 8087 завершит текущую команду, действия микросхемы 8087
    дадут неверный результат.      Фактически все макрокоманды 8087
    содержат команду WAIT для обеспечения синхронизации.  (Команды без
    синхронизации сопроцессора 8087 - это все команды управления,
    обычно не требеющие ожидания результата.  Эти команды можно легко
    отличить так как они все начинаются с FN, где буква N означает
    отсутствие синхронизации).
 
      По макрорасширениям также можно видеть, что команды процессора
    8087 формируются командами ESC.  Чтобы указать адрес памяти,
    команда ESC имеет два операнда.  Первый определяет, какая это
    команда ESC, а второй ссылается на ячейку памяти.  Команда ESC



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