русс | укр

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

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

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

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


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

Обработка числовых исключений


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


Как только модуль обработки операций с плавающей точкой был проинициализирован, и началось нормальное выполнение, модуль обработки операций с плавающей точкой может потребовать внимания, чтобы обработать числовые исключения. В этой главе рассматривается написание программных обработчиков числовых исключений.

Если модуль обработки операций с плавающей точкой встречает немоскированное исключение, то сразу перед выполнением следующей команды WAIT или неуправляющей команды с плавающей точкой вызывается программный обработчик исключений. Вызов происходит через вектор прерывания 16 или через внешнее прерывание, в зависимости от значения бита NE регистра управления CR0.

Если NE=1, то немаскированное исключение с плавающей точкой вызывает прерывание 16, непосредственно перед выполнением следующей неуправляющей команды с плавающей точкой или команды WAIT. Прерывание 16 есть сигнал операционной системе о необходимости вызова обработчика исключений. В главе 9 даны общие сведения об исключениях и прерываниях процессора i486.

Если NE=0 (и ввод IGGNE# не активен), немаскированное исключение "замораживает" процессор сразу перед выполнением следующей неуправляющей команды с плавающей точкой или команды WAIT. "Замороженный" процессор ожидает внешнее прерывание, которое должно быть поддержано внешней аппаратурой в ответ на вывод процессора FERR#. (Независимо от значения NE немаскированное исключение заставляет вывод FERR# быть активным.) В этом случае внешнее прерывание вызывает программу обработки исключения. Усли NE=0, но ввод IGGNE# активен, то процессор не обращает внимание на исключение и продолжает работу. Обработка ошибок через внешние прерывания поддерживается для DOS, совместимых с процессором. В Главе 25 даны некоторые предложения по совместимости.

При обработке ошибок вычислений процессор должен:



  • Не нарушить числовой контекст.
  • Сбросить ошибку и попытаться от нее избавиться.

Хотя способы решения этих проблем меняются от реализации к реализации, большинство обработчиков должны выполнять следующие основные действия:

  • Сохранить среду модуля обработки операций с плавающей точкой (слова управления, статуса, признака, операнды и ссылки на команды), какой она была время генерации исключения.
  • Очистить бит исключения в слове состояния.
  • Замаскировать прерывания.
  • Распознать исключение, проанализировав слова управления и статуса в сохраненной среде.
  • Принять системно-зависимые меры по корректировке ситуации.
  • Вернуться к прерванной программе и возобновить нормальное выполнение.


<== предыдущая лекция | следующая лекция ==>
Инициализация модуля обработки операций с плавающей точкой | Реакция на одновременные исключения


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


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

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

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


 


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

 
 

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

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