Формат регистра состояния FPU x87
Регистр состояния (SR, Status Register) FPU x87
Хранит слово соcтояния (SW, Status Word).
SW отображает текущее состояние FPU посредством следующих элементов:
– флаг занятости FPU;
– указатель вершины стека FPU (TOP);
– флаги кодов условия;
– общий флаг ошибки;
– флаг ошибки операций стека FPU;
– флаги отдельных особых случаев.
Флаги устанавливаются автоматически в зависимости от результата операции.
PE, Inexact-Result (Precision) – ____________ ______________. Истинный результат не может быть точно представлен в заданном формате. Результат _________________. Обработка продолжается.
UE, Numeric Underflow – _________ _______________, антипереполнение. Истинный результат отличен от нуля, но слишком мал для представления в заданном формате. Результат – __________________________ или нуль.
OE, Numeric Overflow – __________________. Результат слишком велик и не помещается в заданный формат. Результат — наибольшее число или бесконечность.
ZE, Divide-By-Zero – ___________ ____________. Делитель равен нулю, а делимое ___ ______ __ не бесконечность. Результат – бесконечность.
IE, Invalid Operation – ________________________ ____________. Операция после выдачи NAN, неподдерживаемый формат, неопределенная форма или переполнение/опустошение стека. Результат – «скрытый» NAN, неопределенное целое или неопределенное BCD.
DE, Denormal Operand – __________________________ ___________. Хотя бы один из операндов не может быть нормализован. Обработка продолжается.
Для сохранения содержимого SR в памяти используют команды:
– F[N]STSW;
– F[N]STENV;
– F[N]SAVE;
– FXSAVE.
Для сохранения содержимого SR в регистре AX используются команды:
– F[N]STSW.
Сброс флагов особых случаев и кодов условия возможен посредством:
– команд F[N]CLEX;
– инициализации FPU с помощью команд F[N]INIT или F[N]SAVE;
– переустановки флагов командами FRSTOR или FLDENV.