<<
>>

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

Ранее было отмечено, что регистр SWR отражает текущее состояние сопроцессора после выполнения последней команды. Далее перечислены поля, из которых струк- турно состоит регистр SWR (см.
рис. 17.2). ■-- Шесть флагов исключительных ситуаций. S Бит SF (Stack Fault) — ошибка работы стека сопроцессора. Бит устанавливает- ся в единицу, если возникает одна из трех исключительных ситуаций (см. ра- нее) — РЕ, UE или IE. В частности, его установка информирует о попытке записи в заполненный стек или, напротив, попытке чтения из пустого стека. После того как вы проанализировали этот бит, его нужно снова установить в ноль вместе с битами РЕ, UE или IE (если они были установлены); Бит ES (Error Summary) сигнализирует о суммарной ошибке в работе сопроцес- сора. Бит устанавливается в единицу, если возникает любая из шести исключи- тельных ситуаций, о которых будет рассказано далее. * Четыре бита C0...C3 (Condition Code) представляют собой код условия. Назна- чение этих битов аналогично флагам в регистре EFLAGS основного процессора — они отражают результат выполнения последней команды сопроцессора. В при- ложении А для некоторых команд сопроцессора приведена интерпретация би- тов СО...СЗ. Ш Трехразрядное поле ТОР содержит указатель регистра текущей вершины стека. Почти половину регистра SWR занимают биты (флаги) регистрации исключи- тельных ситуаций. Исключительная ситуация — особый тип прерываний. Необ- ходимо заметить [8], что прерывания, поддерживаемые процессором Intel, по мес- ту их возникновения классифицируются на внешние и внутренние. Внутренние прерывания возникают в ходе работы текущей программы и делятся на синхрон- ные (по команде iпt) и асинхронные, называемые исключениями, или особыми слу- чаями. Таким образом, исключения — это разновидность прерываний, с помощью которых процессор информирует программу о некоторых особенностях ее реаль- ного исполнения. Сопроцессор также обладает способностью возбуждения подоб- ных прерываний при возникновении определенных ситуаций (не обязательно ошибочных).
Все возможные исключения сведены к шести типам, каждому из ко- торых соответствует один бит в регистре SWR. Программисту совсем не обязатель- но писать обработчик для реакции на ситуацию, приведшую к некоторому исклю- чению. Сопроцессор умеет самостоятельно реагировать на многие из них. Это так называемая обработка исключений по умолчанию. Для того чтобы запретить со- процессору обработку определенного типа исключения по умолчанию, необходи- мо это исключение замаскировать. Такое действие выполняется путем установки в единицу нужного бита в управляющем регистре сопроцессора CWR (рис. 17.4). Приведем типы исключений, фиксируемые с помощью регистра SWR: * IЕ (Invalide operation Error) — недействительная операция; * DE (Denormalized operand Error) — денормализованный операнд; ϋ ZE (divide by Zero Error) — ошибка деления на нуль; * OE (Overflow Error) — ошибка переполнения (возникает в случае выхода по- рядка числа за максимально допустимый диапазон); ш UЕ (Underflow Error) — ошибка антипереполнения (возникает, когда результат слишком мал); ж РЕ (Precision Error) — ошибка точности (устанавливается, когда сопроцессору приходится округлять результат из-за того, что его точное представление не- возможно; так, сопроцессору, как и читателю, никогда не удастся точно разде- лить 10 на 3). При возникновении любого из этих шести типов исключений устанавливается в единицу соответствующий бит в регистре SWR вне зависимости от того, было ли замаскировано это исключение в регистре CWR или нет. Более подробно об исклю- чениях, в частности, об условиях их возникновения, рассказывается в разделе «Ис- ключения сопроцессора и их обработка».
<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме Регистр состояния SWR:

  1. § 19 Узаконение незаконных детей в России. – Узаконение раскольничьих детей. – Когда признаются незаконными дети, рожденные в браке? – Состояние незаконных детей. – Законность рождения и состояние незаконных по закону прибалтийских губерний.
  2. СОСТОЯНИЕ
  3. СОЗНАНИЕ: СОСТОЯНИЕ
  4. ТЕСТ СОСТОЯНИЙ
  5. СОСТОЯНИЕ ПОГРАНИЧНОЕ
  6. СОСТОЯНИЕ ПСИХИЧЕСКОЕ
  7. Психические состояния
  8. Неврологические состояния
  9. Неврологические состояния
  10. СОСТОЯНИЕ РЕАКТИВНОЕ
  11. § 2. СОСТОЯНИЕ СВОБОДЫ
  12. 1§ 3. СОСТОЯНИЕ ГРАЖДАНСТВА
  13. § 4. СЕМЕЙНОЕ СОСТОЯНИЕ
  14. СОСТОЯНИЕ ФУНКЦИОНАЛЬНОЕ
  15. СОСТОЯНИЕ НАВЯЗЧИВОЕ