Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





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

Начиная с процессоров Pentium, математический сопроцессор как отдельное устройство перестал существовать. Вместо него в состав процессоров входит блок операций с плавающей точкой (FPU — Floating-Point Unit), однако он программируется как отдельный модуль.
Сопроцессор добавляет арифметические возможности в систему, но не замещает ни одну команду основного процессора. Команды add, sub, mul и diy, описанные ранее, выполняются процессором, а математический сопроцессор выполняет дополнительные, более эффективные команды арифметической обработки.
С точки зрения программиста, система с сопроцессором выглядит как единый процессор с большим набором команд.
Программная модель сопроцессора может быть представлена как совокупность регистров. Они могут быть разделены на три группы:
1. Регистры стека сопроцессора. Их 8, и они именуются как S T ( 0 ) , S T ( 1 ) , S T ( 2 ) ... S T ( 7 ) . Числа с плавающей точкой запоминаются как 80-битовые числа расширенного формата. Стек регистров организован по принципу LIFO (Last-In, First-Out — последним пришел, первым ушел). Регистр S T ( 0 ) всегда указывает на вершину стека. Вновь поступающие в сопроцессор числа добавляются в вершину стека.

2. Служебные регистры, в число которых входят регистр состояния, отражающий информацию о состоянии процессора, управляющий регистр (для управления режимами работы сопроцессора) и регистр состояния тегов, отражающий состояние регистров ST ( 0 ) ... ST ( 7 ) .
3. Регистр-указатель данных и регистр-указатель команд, предназначенные для обработки исключительных ситуаций.
К любому из вышеперечисленных регистров программа может получить доступ либо напрямую, либо косвенно. Для программирования сопроцессора в основном используются регистры S T ( 0 ) ... S T ( 7 ) и биты СО, С 1 , С2 и сз регистра состояния.


 
 
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru