Внутренние регистры: Регистр тэгов FPU |
Программирование - Архитектура и система команд микропроцессоров x86 | |||
Слово тэгов TW (рис. 1.11., 1.12.) описывает содержимое всех регистров регистрового стека FPU. Значения тэгов соответствуют физическим регистрам R0 – R7. Поле TOP регистра состояния SW используется для определения соответствия тэгов к относительным регистрам стека
Рис. 1.12. Формат регистра тэгов FPU
Программы обработчики исключений могут использовать тэговую информацию для определения содержимого регистров стека без применения комплексного анализа непосредственных значений. Для чтения тэговой информации она предварительно должна быть записана в память командами FSTENV/FNSTENV или FSAVE/FNSAVE. При загрузке слова тэгов командами FLDENV или FRSTOR процессоры Intel387, Intel486, Pentium … разделяют приходящие значения тэгов на два типа: занятый (значения 00, 01 и 10) и незанятый (11). В последующих операциях с незанятыми регистрами всегда проверяется значение в регистре, но не значение тэга. Команды FSTENV и FSAVE проверяют незанятые регистры и устанавливают корректные значения тэгов перед их занесением в память. В сопроцессорах Intel287 и 8087 при загрузке слова тэгов командами FLDENV или FRSTOR корректность заносимых значений тэгов также не проверяется, однако в последующих операциях сопроцессор опирается не на конкретные значения в регистрах, а на тэговую информацию, корректируя ее в случае изменения содержимого регистров. Поэтому программное обеспечение может функционировать неправильно при занесении в слово тэгов (командами FLDENV или FRSTOR) информации, не соответствующей действительному содержимому регистров. Еще одно отличие сопроцессоров Intel287 и 8087 состоит в том, что они интерпретируют значения псевдо-нуль и ненормализованное как действительные (00). Более поздние модели сопроцессоров, поддерживающие стандарт IEEE-754, интерпретируют эти значения как специальные (10).
|
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru