-----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || ||D8 /2 FCOM m32real 4 Сравнение ST с m32real ||DC /2 FCOM m64real 4 Сравнение ST с m64real ||D8 D0+i FCOM ST(i) 4 Сравнение ST с ST(i) ||D8 D1 FCOM 4 Сравнение ST с ST(1) ||D8 /3 FCOMP m32real 4 Сравнение ST с m32real || и извлечение из стека ST ||DC /3 FCOMP m64real 4 Сравнение ST с m64real || и извлечение из стека ST ||D8 D8+i FCOMP ST(i) 4 Сравнение ST с ST(i) || и извлечение из стека ST ||D8 D9 FCOMP 4 Сравнение ST с ST(1) || и извлечение из стека ST ||DE D9 FCOMPP 5 Сравнение ST с ST(1) || и извлечение из стека ST дважды |----------------------------------------------------------------- Работа команды CASE (отношение операндов) OF Не сравнимы: C3, C2, C0 <- 111; ST > SRC: C3, C2, C0 <- 000; ST < SRC: C3, C2, C0 <- 001; ST = SRC: C3, C2, C0 lt;- 100;IF команда = FCOMP THEN извлечение из стека ST; FI;IF команда = FCOMPP THEN извлечение из стека ST;извлечение из стека ST; FI; ----------------------------------------------------------------- Флаги FPU | EFlags----------------------------------------------------------------- C0 CF C1 отсутствует C2 PF C3 ZF----------------------------------------------------------------- ОписаниеКоманды сравнения действительных чисел сравнивают вершину стека систочником, который может являться регистром или операндом памяти,являющимся действительным числом одинарной или двойной точности. Еслиоперанд не задан, то ST сравнивается с ST(1). После выполнения командыусловные коды отражают отношение между ST и исходным операндом. Изменяемые флаги модуля операций с плавающей точкойC1, как описано в таблице 15-1; C0, C2, C3 не определены. Исключения числовых операцийD, I, IS Исключения защищенного режима#GP(0) в случае недопустимого исполнительного адреса операнда памяти всегментах CS, DS, ES, FS или GS; #SS(0) в случае недопустимого адреса всегменте SS; #PF(код сбоя) в случае страничного сбоя; #NM приустановленном EM или TS в CR0; #AC для невыравненной ссылки к памяти притекущем уровне привилегированности, равном 3. Исключения режима реальных адресовПрерывание 13, если какая-либо часть операнда лежит вне пространстваисполнительных адресов от 0 до 0FFFFH; Прерывание 7 при установленном EMили TS в CR0. Исключения виртуального режима 8086Те же исключения, что и для режима реальных адресов: #PF (код сбоя) длястраничных сбоев; #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3. ПримечанияЕсли любой из операндов имеет значение NaN, или имеет неопределенныйформат, либо при сбое в стеке, то генерируется исключение невернойоперации, а биты условия устанавливаются в значение "неупорядочен". Знак нулевого значения игнорируется, таким образом что -0.0 = - +0.0.