Внутренние регистры: Регистры-указатели FPU |
Программирование - Архитектура и система команд микропроцессоров x86 | |||
Регистр указателя команд (FIP), регистр указателя данных (FDP) и регистр кода операции (Opcode Register) предназначены для использования обработчиком исключений. Всегда при приходе команды ESC (кроме FINIT, FCLEX, FLDCW, FSTCW, FSTSW, FSTSW AX, FSTENV, FLDENV, FSAVE, FRSTOR и FWAIT) процессор сохраняет адрес команды, адрес операнда (если присутствует) и код операции в названных регистрах указателях. Содержимое этих регистров не изменяется при выполнении последующих управляющих команд (перечислены выше). Доступ к этим регистрам осуществляется с помощью команд FSTENV, FLDENV, FSAVE и FRSTOR. После выполнения команд FINIT и FSAVE указанные регистры очищаются. При записи в память указатели команды и данных могут представляться в четырех различных форматах в зависимости от режима работы процессора и атрибута размера адреса команды. На рис. 1.15. ... 1.18. представлены эти форматы при использовании команд FSTENV, FLDENV. На рисунке 1.19. показано, как процессор формирует из двухбайтного (без учета префиксов) кода команды FPU 11‑разрядный код для сохранения в регистре кода операции.
Рис. 1.15. Формат данных FSTENV, FLDENV в 32-битном защищенном режиме для сопроцессоров Intel387, Intel486 …
Рис. 1.16. Формат данных FSTENV, FLDENV в 32-битном режиме реальной адресации для сопроцессоров Intel387, Intel486 …
Рис. 1.17. Формат данных FSTENV, FLDENV в 16-битном защищенном режиме для сопроцессоров Intel287, Intel387, Intel486 …
Рис. 1.18. Формат данных FSTENV, FLDENV в 16-битном режиме реальной адресации для всех сопроцессоров и в режиме V86 для сопроцессоров Intel387, Intel486 …
Рис. 1.19. Формирование содержимого регистра кода операции
Во всех сопроцессорах кроме 8087 адрес команды учитывает наличие префиксов. В 8087 префиксы не учитываются.
|
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru