Инициализация модуля обработки операций с плавающей точкой означает приведение его в определенное состояние, независимо от предыдущих действий. Инициализация выполняется с помощью единственной команды FNINIT. В результате устанавливаются все маски ошибок, во все регистры заносится 0 и устанавливается режим управления округлением и точностью по умолчанию. В Таблице 19-1 показано состояние модуля операций с плавающей точкой после выполнения команды FINIT или FNINIT.
Команда FNINIT приводит модуль обработки операций с плавающей точкой в такое же состояние, которое получается после нажатия клавиши RESET в результате выполнения встроенного теста по проверке памяти. Если встроенный тест не запрашивается, то нажатие RESET оставляет модуль обработки операций с плавающей точкой неизмененным. Команда FNINIT будет выполнена после перезагрузки.
Таблица 19-1. Состояние FPU после инициализации +---------------------------------------------------------------+| Поле | Значение | Интерпретация |+---------------------+----------+------------------------------|| Слово Управления | 037FH | || (Управление * | | || бесконечностью) | 0 | || Управление | | Округление до ближайшего || округлением | 00 | || Управление | | 64 бита || точностью | 11 | || Маски особых | | Все особые ситуации || ситуаций | 111111 | заблокированы |+---------------------+----------+------------------------------|| Слово Состояния | 0000H | || (Бит занятости) | 0 | || Код Условия | 0000 | || Вершина Стека | 000 | Регистр 0 - вершина стека || Наличие Особой | | || ситуации | 0 | Особых ситуаций нет || Стековый флаг | 0 | || Флаги Особых | | || ситуаций | 000000 | Особых ситуаций нет |+---------------------+----------+------------------------------|| Слово Признака | FFFFH | || Признаки | 11 | |+---------------------+----------+------------------------------|| Регистры | N.C. | Не изменялись |+---------------------+----------+------------------------------|| Ссылки на Особые | | || ситуации | | || Код Команды | | || Адрес Команды | | || Адрес Операнда | | |+---------------------------------------------------------------+ * Процессор i486 не имеет управления бесконечностью. Данная величина дляпрограмм, написанных для сопроцессора 80287; если эти программы зависят отэтого бита, то для процессора i486 они могут работать неверно.