Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
29-32.doc
Скачиваний:
10
Добавлен:
23.04.2019
Размер:
221 Кб
Скачать
☆

Регистр состояния

Обозначение битов и их порядок в регистре состояния:

  • IE,нулевой;

  • DE,первый;

  • ZE,второй;

  • OE,третий;

  • UE,четвертый;

  • PE,пятый;

  • ES,седьмой ;

  • C0,восьмой;

  • C1,девятый;

  • C2,десятый;

  • ST,одиннадцатый, двенадцатый, тринадцатый;

  • C3,четырнадцатый;

  • B, пятнадцатый.

Шестой бит не используется.

В регистре состояния биты 0-5 - флажки особых случаев. Они устанавливаются всегда при возникновении особых случаев, даже замаскированных установкой в 1 соответствующих битов регистра управления.

Ниже приведена таблица флажков особых случаев:

  • IE - Недействительная операция

  • DE - Денормализованный результат

  • ZE - Деление на нуль

  • OE - Переполнение

  • UE - Антипереполнение

  • PE - Неточный результат

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

Сопроцессоры 80287/80387 и встроенные сопроцессоры процессоров 486 и выше используют бит 7 в качестве флага суммарной ошибки, который устанавливается в 1 при возникновении незамаскированного особого случая.

Биты C0, C1, C2, C3 - это коды условий. Они определяются по результату выполнения команд сравнения и команды нахождения остатка.

Поле ST занимает три бита 11, 12, 13 и содержит номер численного регистра, являющегося вершиной стека численных регистров.

Бит B - бит занятости. Он устанавливается в 1, когда процессор выполняет команду или когда происходит прерывание от сопроцессора. Если сопроцессор свободен, бит занятости установлен в 0.

Регистры указателя команды и указателя операнда

Регистры указателя команды и указателя операнда предназначены для обработки особых случаев, возникающих при работе сопроцессора.

В сопроцессоре 8087 указатель команды содержит 20-разрядный адрес команды, вызвавшей особый случай и код выполняемой в этот момент операции. Адрес команды здесь указывается без учета предшествующих команде префиксов

Сопроцессоры 80287/80387 и встроенные сопроцессоры процессоров 486 и выше в реальном режиме работы имеют такой же формат регистра указателя команд, однако этот указатель показывает на первый префикс команды, вызвавшей особый случай.

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

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

Система команд сопроцессора

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

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

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

Команды сопроцессора можно разделить на несколько групп:

  • команды пересылки данных;

  • арифметические команды;

  • команды сравнений чисел;

  • трансцендентные команды;

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

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

Арифметические команды выполняют такие операции, как сложение, вычитание, умножение, деление, извлечение квадратного корня, нахождение частичного остатка, округление и т.п.

Команды сравнения сравнивают вещественные и целые числа, выполняют анализ чисел.

Трансцендентные команды предназначены для вычисления различных тригонометрических, логорифмических, показательных и гиперболических функций - sin, cos, tg и тому подобных.

Последняя группа команд - управляющие команды. Они обеспечивают установку режима работы арифметического сопроцессора, его сброс и инициализацию, перевод сопроцессора в защищенный режим работы и так далее.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]