October 18 2017 12:24:02
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
регистры FIP
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ

Команда FLDCW загружает в регистр управления FPCR содержимое адресуемой ячейки памяти, команды FSTCW/FNSTCW пересылают содержимое этого регистра в память. Данные команды используются для изменения режима работы FPU: маскирования определенных флагов, перемены способа округления и точности представления результата.

Команды FCLEX/FNCLEX сбрасывают в состояние «0» признаки ES, SF, РЕ, UE, ОЕ, ZE, DE, IE в регистре FPSR, а так же бит В. Значение поля ТОР и кодов условий С0-СЗ в этом регистре сохраняются неизменными.

Команды FSTENV/FNSTENV, FLDENV, FSAVE, FRSTOR используются для пересылки содержимого регистров FPU в память и обратно. Обычно эти процедуры используются при переключении задач, и адресуемым сегментом служит SS (сегмент стека). При выполнении команд FSTENV/FNSTENV производится запись в память содержимого регистров FPSR, FPCR, TW, FIP, FDP. Команда FLDENV загружает содержимое этих регистров из памяти, начиная с указанной в команде ячейки памяти. Размещение содержимого регистров FPU в памяти для этих команд показано на рис. 2.19 и 2.20, где Ах - адрес младшего байта содержимого регистра FPCR, который задается операндом m14byte или m28byte. Когда процессор работает в реальном режиме или в режиме виртуального 8086, регистры FIP, FDP содержат 20-разрядный физический адрес команды и операнда. При работе в защищенном режиме в этих регистрах хранятся относительный адрес (содержимое EIP и эффективный адрес ЕА) и селекторы (содержимое соответствующих сегментных регистров). Объем памяти, используемой при выполнении команд FSTENV, FLDENV, составляет 14 байт при 16-разрядной адресации и 28 байт при 32-разрядной (часть байтов не используется).

Команды FSAVE/FNSAVE дополнительно пересылают в память содержимое всех восьми 80-разрядных арифметических регистров, которое располагается после содержимого регистра FDP (рис. 2.19, 2.20), начиная с содержимого вершины стека ST(0). Используемый объем памяти при этом возрастает на 80 байт по сравнению с командами FSTENV/ FNSTENV. Команда FRSTOR восстанавливает содержимое всех регистров FPU, загружая его из памяти.

После выполнения команд FSTENV/FNSTENV, FSAVE/FNSAVE, содержимое регистров FPU принимает такое же значение, как после команд FINIT/FNINIT.

Команды FINCSTP и FDECSTP увеличивают и уменьшают на единицу значение поля ТОР в регистре FPSR, меняя, таким образом, физический номер регистра ST(0) - вершины стека (см. рис. 2.16). При этом содержимое регистров данных и значения полей tag в регистре TW не изменяются.

img011

Команда FFREE освобождает адресуемый регистр ST(i), устанавливая для него в регистре TW значение поля tag i = 11 (пустой).

img012

Команда FNOP не выполняет каких-либо операций. Поступление команды WAIT(FWAIT) также не реализует каких-либо операций. Однако эта команда проверяет значения признаков в регистре FPSR и реализует обработку соответствующих исключений FPU, если установлены единичные значения немаскированных признаков, аналогично тому, как это выполняют системные команды с префиксом F.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.05 секунд 2,255,321 уникальных посетителей