Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скляров И. Изучаем Assembler за 7 дней (2010).pdf
Скачиваний:
1335
Добавлен:
23.02.2015
Размер:
2.11 Mб
Скачать

http://www.sklyaroff.ru

105

Биты RC определяют способ округления результатов команд FPU до заданной точности (табл. 5.3).

 

Таблица 5.3. Способы округления

 

 

Значение

Способ округления

RC

 

 

 

00b

К ближайшему числу (этот режим устанавливается при инициализации

 

сопроцессора)

 

 

01b

К отрицательной бесконечности

 

 

10b

К положительной бесконечности

 

 

11b

К нулю

 

 

Биты 0-5 регистра CWR маскируют соответствующие исключения – если маскирующий бит установлен, исключения не происходит, а результат вызвавшей его команды определяется правилами для каждого исключения специально.

После выполнения команды FINIT в регистре управления устанавливается режим работы с расширенной точностью и округления к ближайшему числу. Все биты масок обработки исключений устанавливаются в 1; следовательно, все исключения будут замаскированы.

5.4.2.4. Регистр тегов TWR (Tags Word Register)

Регистр тегов сопроцессора содержит восемь пар битов (тегов), каждая из которых соответствует определенному физическому регистру стека, например: биты 15-14 описывают регистр R7, 13-12 – регистр R6 и т. д. Если содержимое одного из регистров R0-R7 изменяется, то это немедленно отражается на соответствующем этому регистру паре битов регистра тегов.

Значения, которые могут принимать пары битов (теги) в регистре тегов:

00 — регистр стека сопроцессора содержит допустимое ненулевое значение;

01 — регистр стека сопроцессора содержит нулевое значение;

10 — регистр стека сопроцессора содержит одно из специальных значений (кроме нуля): не-число, бесконечность, денормализованное число, неподдерживаемое число;

11 — регистр стека пуст.

5.4.2.5. Регистры-указатели команд IPR (Instruction Point Register) и данных DPR (Data Point Register)

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

5.4.3. Исключения FPU

При вычислениях с помощью команд сопроцессора могут возникать шесть типов особых ситуаций, называемых исключениями. Биты особых ситуаций хранятся в регистре состояния. Ниже перечислены все возможные исключения и действия выполняемые при наступившем исключении если соответствующий бит маски в регистре состояния установлен в 1:

неточный результат (округление) — результат округляется в соответствии с битами RC. При этом флаг С1 показывает, в какую сторону произошло округление: 0 – вниз, 1 – вверх;

недействительная операция — результат определяется из табл. 5.4;

деление на ноль — результат преобразуется в бесконечность соответствующего знака (учитывается и знак нуля);

антипереполнение (слишком маленький результат) — результат слишком мал, чтобы быть представленным обычным числом, — он преобразуется в денормализованное число;