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



         

Команды сравнения - часть 4


                                    ; ...                   ;  можно определить какое из чисел больше
             0018                   ST_LESS:                      ; Попадаем сюда,если C3=0,C0=1 - число
                                    ; ...                   ;  на вершине стека 8087 меньше WORD_PTR
 
             0018                   CODE    ENDS
                                          END
 
            Фиг. 7.20 Условный переход
 
      У команды FCOMPP программист не указывает никаких операндов.
    Эта команда всегда сравнивает верхние два элемента стека.  После
    сравнения они оба исчезают из стека.
 
      Команды сравнения с извлечением из стека обеспечивают удобный
    способ очистки стека.  Поскольку у сопроцессора 8087 нет команды,
    удобно извлекающей операнд из стека, вместо нее можно использовать
    команды сравнения с извлечением из стека.  Эти команды также
    изменяют и регистр состояния, и их нельзя использовать, если биты
    состояния имеют значение для дальнейшей работы, но в большинстве
    случаев эти команды позволяют быстро извлечь из стека один или два
    операнда.  Так как сопроцессор 8087 регистрирует ошибку при
    переполнении стека, необходимо удалить все операнды из стека при
    окончании вычислений.
 
      Существуют две специальные команды сравнения.  Команда
    сравнения содержимого вершины стека с нулем FTST, с помощью которой
    можно быстро определить знак содержимого вершины стека.  (Результат
    сравнения иллюстрируется таблицей на Фиг. 7.19, нужно только всюду в
    таблице слово "источник" заменить на слово "нуль").
 
      Команда FXAM, строго говоря, не является командой сравнения.
    Хотя она и работает с содержимым вершины стека, но не сравнивает
    содержимое вершины ни с одним другим числом.  Скорее команда FXAM
    устанавливает все четыре флага регистра состояния (от C3 до C0
    включительно), показывая, какого типа число находится в вершине
    стека.  Так как сопроцессор 8087 может обрабатывать любые формы



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