русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Денормальные операнды


Дата добавления: 2015-06-12; просмотров: 481; Нарушение авторских прав


Если арифметическая команда пытается оперировать денормальными операндами, модуль обработки операций с плавающей точкой выдает исключение с денормальными операндами. Денормальные операнды могут иметь уменьшенную значимость из-за потери младших битов, следовательно может быть желательно предотвратить операции над этими операндами в некоторых конкретных программах. Это может быть достигнуто с помощью обработчика исключений, который реагирует на немаскированные исключения денормальных чисел. Большинство пользователей будут маскировать эту исключение для того, чтобы можно было выполнить вычисления. При этом пользователь может проанализировать любые потери точности при получении конечного результата. Если это исключение маскировано, модуль обработки операций с плавающей точкой устанавливает бит D в слове состояния, а затем выполняет команду. Последовательное отрицательное переполнение и денормальные числа при обработке на процессоре i486 будут выдавать хорошие результаты, и часто даже лучше, чем полученные на машинах, которые сводят отрицательные переполнения к нулю. Фактически, денормальные операнды в простом и двойном формате точности при загрузке в модуль обработки операций с плавающей точкой будут нормализованы и приведены к расширенному вещественному формату. При этом последовательные операции будут выигрывать от добавочной точности внутреннего вещественного расширенного формата.

Если это исключение не маскировано, будет установлен бит D и вызван обработчик исключений. При этом операнды не будут тронуты командой и могут быть использованы обработчиком для проверки.

Модуль обработки операций с плавающей точкой процессора i486 и математический сопроцессор 387 обрабатывают денормальные числа несколько иначе чем сопроцессоры 8087 и 80287. Эти изменения сделаны из-за пересмотра стандарта IEEE перед его внедрением. Различия в операциях проявляются при маскировании исключения денормальных чисел. Модуль обработки операций с плавающей точкой процессора i486 и математический сопроцессор 387 автоматически нормализуют денормальные числа. Сопроцессоры 8087 и 80287 выдают денормальный результат.



Различия в обработке денормальных чисел не лежат на виду. Исключения денормальных чисел обычно маскированы для сопроцессора 387 и модуля обработки операций с плавающей точкой процессора i486. Для программ, которые работают на математическом сопроцессоре 80287, исключения денормальных чисел часто не маскируются и необходимо вызывать обработчик исключений для того, чтобы нормализовать любые денормальные значения. Такого рода обработчики исключений являются излишними для процессора i486 и сопроцессора 387 DX - для них обработчик исключений денормальных чисел используется по умолчанию.

Программа может обнаружить эти ситуации и в процессе работы как на сопроцессоре 387 или модуле обработки операций с плавающей точкой процессора i486, так и на старых математических сопроцессорах 8087/80287. Для сопроцессоров 8087/80287 рекомендуется использовать последовательность кодов, приведенных на Рисунке 16-4. Этот пример на Рисунке 16-4 можно использовать для выборочного маскирования исключений денормальных чисел на процессоре i486 или сопроцессоре 387 DX. Для поддержки математических сопроцессоров 8087/80287 необходим обработчик исключений денормальных чисел. Этот пример программы может быть также использован для установки флага, который позволяет использовать новые команды, добавленные к основному набору команд сопроцессоров 8087/287 в устройствах обработки операций с плавающей точкой i486 и 387.

+---------------------------------------------------------------+| || || || FINIT ; Использовать режим бесконечности, || ; установленный по умолчанию: || ; компьютерный для сопроцессоров 8087/80287, || ; афинный для сопроцессора 387 DX и i486 FPU || FLD1 ; Генерировать бесконечность || FLDZ || FDIV || FLD ST ; Сформировать отрицательную бесконечность || FCHS || FCOMMP ; Сравнить +бесконечность с -бесконечностью || FSTSW temp ; Для сопроцессоров 8087/80287 они равны || MOV AX, temp || SAHF || JZ Using_8087 || || || |+---------------------------------------------------------------+ Рисунок 16-4. Программа Обнаружения Сопроцессора


<== предыдущая лекция | следующая лекция ==>
Недопустимые арифметические операции | Переполнения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.