Assembler для начинающих
юристы

Команды сравнения


      Как и в наборе команд микропроцессора 8088, у сопроцессора 8087
    есть команды, сравнивающие два числа.  Сопроцессор 8087 отбрасывает
    результат сравнения, но устанавливает в соответствии с ним флаги
    состояния.    Перед тем как опросить флаги состояния, программа
    должна считать слово состояния в память.  Далее проще всего
    загрузить флаги состояния в регистр AH, а затем, для легкости
    проверки условия, - в регистр флагов макропроцессора 8088.
 
      На Фиг. 7.18 показан листинг ассемблера команд сравнения
    сопроцессора 8087.  Так как в операции всегда участвует вершина
    стека, в программе надо указать только один регистр или операнд в
    памяти.  После сравнения в слове состояния содержится информация о


    соотношении двух чисел.  Таблица на Фиг. 7.19 показывает возможные
    варианты соотношений.  Для отражения результата сравнения
    необходимы только два бита состояния - C3 и C0; расположение C3 и
    C0 в слове состояния показано на Фиг. 7.8.
      На Фиг. 7.20 приведен фрагмент программы, которая сравнивает
    содержимое вершины стека и слово в памяти.  Переходы в этой
    программе выполняются на основе результата сравнения.  В одном из
    четырех случаев числа нельзя сравнить.  Это происходит тогда, когда
    одно из чисел есть NAN (не число) или одна из форм бесконечности.
            Microsoft (R) Macro Assembler Version 5.00                1/1/80 04:04:18
            Фиг. 7.18 Команды сравнения сопроцессора 8087             Page     1-1
 
                                          PAGE  ,132
                                          TITLE Фиг. 7.18 Команды сравнения сопроцессора 8087
 
             0000                   CODE  SEGMENT
                                          ASSUME      CS:CODE,DS:CODE
 
             0000                   WORD_INTEGER      LABEL WORD
             0000                   SHORT_INTEGER     LABEL DWORD
             0000                   SHORT_REAL  LABEL DWORD
             0000                   LONG_REAL   LABEL QWORD



Содержание раздела