Коды условия FPU x87
Действия, предпринимаемые обработчиком особых случаев FPU
Приоритеты особых случаев FPU
1.Недопустимая операция:
– опустошение стека;
– переполнение стека;
– недопустимый формат операнда (только для операнда в расширенном формате двойной точности);
– ______.
2.______ (не истинный особый случай).
3.Прочие особые случаи недопустимой операции.
4.Денормализованный операнд.
5.Переполнение и ________________________ (может вызвать особый случай гр. 6).
6.Потеря ____________.
1.Анализ сохраненного ______________ FPU с целью определения причины ошибки.
2.Устранение причины ошибки.
3.________ флагов особых случаев.
4.Возврат в прерванную программу и продолжение ее нормального выполнения.
При необходимости:
– инкремент программного счетчика ошибок для последующего его анализа;
– печать и отображение диагностической информации;
– приостанов выполнения основной программы.
Биты C0–C3 отражают результат операции ______________ двух вещественных чисел или _____________________ операции.
Используются в общем случае для реализации ветвлений (____________ ______________) и при анализе _________ особых случаев.
Устанавливаются автоматически.
Обработка кодов условия FPU x86
Cуществуют два варианта реализации ветвлений по итогам сравнения пары значений с плавающей точкой:
– «старый» метод (процессоров, предшествующих ___);
– «новый» метод (_____).
«Старый» метод обработки кодов условия FPU
1.Производится ______________ двух операндов с плавающей точкой с помощью команды сравнения FCOM, FCOMP, FCOMPP, FTST, FUCOMPP, FICOM или FICOMP.
2.В соответствии с полученным результатом автоматически устанавливаются флаги кода условия C0-C3.
3.Содержимое флагов C0-C3 копируется в флаги состояния регистра _________ посредством двухэтапной процедуры:
– Команда ________ ___ передает слово состояния FPU в регистр AX.
– Команда ______ копирует 8 старших бит регистра AX, содержащих флаги кодов условия, в младшие 8 разрядов регистра _________.
«Новый» метод обработки кодов условия FPU
Для сравнения двух операндов с плавающей точкой используется одна из новых (P6+) команд FCOMI, FCOMIP, FUCOMI или FUCOMIP, которые устанавливают флаги _____ ___ __ ___ непосредственно в регистре _________.
Одна команда «нового» метода эквивалентна трем командам «старого».
Новые (P6+) команды FCMOVcc реализуют ____________ пересылки между регистрами FPU в зависимости от состояния флагов ZF, PF и CF. Благодаря этому отпадает необходимость в использовании оператора «IF».