русс | укр

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

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

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

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


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

Управляющие команды


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


Управляющие команды модуля обработки операций с плавающей точкой показаны в Таблице 17-8. Команда FSTSW обычно используется для условного ветвления. Остальные команды как правило не используются в вычислениях, они управляют действиями модуля обработки операций с плавающей точкой на системном уровне. Эти действия включают в себя инициализацию модуля обработки операций с плавающей точкой, обработку численных исключений и переключение задач.

Таблица 17-8. Управляющие Инструкции +---------------------------------------------------------------+| Мнемоника | Операция |+---------------------+-----------------------------------------|| | || FINIT/FNINIT | Инициализация FPU || | || FLDCW | Загрузка Управляющего Слова || | || FSTCW/FNSTCW | Сохранить Управляющее Слово || | || FSTSW/FNSTSW | Сохранить Слово Состояния || | || FSTSW AX/FNSTSW AX* | Сохранить Слово Состояния в Регистре AX || | || FCLEX/FNCLEX | Сброс Исключения || | || FSTENV/FNSTENV | Сохранить Окружение || | || FLDENV | Загрузить Окружение || | || FSAVE/FNSAVE | Сохранить Состояние || | || FRSTOR | Восстановить Состояние || | || FINCSTP | Увеличить Указатель Вершины Стека || | || FDECSTP | Уменьшить Указатель Вершины Стека || | || FFREE | Очистить Регистры || | || FNOP | Нет Операция || | || FWAIT | Отчет об ошибках FPU || | |+---------------------------------------------------------------+ * Недоступно для математического сопроцессора 8087.

Как показано в Таблице 17-8, конкретные команды имеют альтернативную мнемонику. Команды, которые инициализируют модуль обработки операций с плавающей точкой, снимают исключения или сохраняют (полностью или частично) операционную среду модуля обработки операций с плавающей точкой, можно представить в двух видах:

  • Ожидать - эта мнемоника начинается с одного F, например FSTSW. Этот вид проверяет на немаскируемые численные исключения.
  • Не ожидать - эта мнемоника начинается с FN, например FNSTSW. Этот вид игнорирует немаскируемые численные исключения.

Когда управляющие команды кодируются с использованием мнемоники "не ожидать", ассемблер ASM386/486 не выполняет ESC-команду перед команду WAIT (ожидать), а процессор не тестирует условие возникновения ошибки при команде с плавающей точкой перед выполнением управляющей команды.



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

Синхронизация исключений возложена на команду WAIT. Так как модуль обработки операций с плавающей точкой и модуль обработки целочисленных операций работают параллельно, то в случае исключения с плавающей точкой возможно, что процессор будет использовать информацию, необходимую для исправления этой ситуацией, перед тем, как вызвать обработчик этого исключения. Применение команды WAIT или FWAIT в надлежащем месте может предотвратить это. Смотрите Главу 18 для дальнейших пояснений.

Следует также обратить внимание на то, что команды FENI и FDISI сопроцессора 8087 и команда FSETPM сопроцессора 80287 не реализуют никаких функций в процессоре i486. Если эти коды операций обнаруживаются в потоке команд, то процессор i486 не выполняет каких-либо специальных действий и не меняет никаких внутренних состояний. В Главе 25 приведено более полное описание различий между командами с плавающей точкой процессора i486 и арифметических сопроцессоров 8087, 80287 и 387 DX.

 

 



<== предыдущая лекция | следующая лекция ==>
Операции с константами | PL/M-386/486


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


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

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

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


 


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

 
 

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

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