Как и в наборе команд микропроцессора 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