Формат регистра состояния 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.