Регистр управления cwr

Регистр управления работой сопроцессора определяет особенности обработки численных данных (рис. 19.4). Он состоит из:

– шести масок исключений;

– поля управления точностью рс (Precision Control);

– поля управления округлением rс (Roimding Control).

Шесть масок предназначены для маскирования исключительных ситуаций, воз­никновение которых фиксируется с помощью шести бит регистра swr. Если ка­кие-то биты исключений в регистре cwr установлены в единицу, то это означает, что соответствующие исключения будут обрабатываться самим сопроцессором. Если для какого-либо исключения в соответствующем бите масок исключений регистра cwr содержится нулевое значение, то при возникновении исключения этого типа будет возбуждено прерывание 16 (10h). Операционная система долж­на содержать (или программист должен написать) обработчик этого прерывания. Он должен выяснить причину прерывания, после чего, если это необходимо, ис­править ее, а также выполнить другие действия.

Поле управления точностью рс предназначено для выбора длины мантиссы. Возможные значения в этом поле означают:

– рс= 00 — длина мантиссы 24 бита;

– рс=10 — длина мантиссы 53 бита;

– рс=11 — длина мантиссы 64 бита.

По умолчанию устанавливается значение поля рс=11.

Поле управления округлением rc позволяет управлять процессом округления чисел в процессе работы сопроцессора. Необходимость операции округления может появиться в ситуации, когда после выполнения очередной команды сопроцессора получается не представимый результат, например, периодическая дробь 3,333... Установив одно из значений в поле rc, можно выполнить округление в необходимую сторону. Для того чтобы выяснить характер округления, вве­дем обозначения:

– m — значение в st(0) или результат работы некоторой команды, который не может быть точно представлен и поэтому должен быть округлен;

– а и b — наиболее близкие значения к значению m, которые могут быть пред­ставлены в регистре st(0) сопроцессора, причем выполняется условие a<m<b.

Ниже приведены значения поля rc и описан соответствующий им характер округления:

– 00 — значение m округляется к ближайшему числу а или b;

– 01 — значение m округляется в меньшую сторону, то есть m=а;

– 10 — значение m округляется в большую сторону, то есть m=b;

– 11 — производится отбрасывание дробной части m. Используется для приведения значения к форме, которая может использоваться в операциях целочис­ленной арифметики.

Регистр тегов twr

Регистр тегов twr представляет собой совокупность двухбитовых полей. Каждое двухбитовое поле соответствует определенному физическому регистру стека и характеризует его текущее состояние. Изменение состояния любого регистра стека отражается на содержимом соответствующего этому регистру поля регистра тега. Возможны следующие значения в полях регистра тега:

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

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

– 10 — регистр стека сопроцессора содержит одно из специальных численных значений, за исключением нуля;

– 11 — регистр пуст и в него можно производить запись. Это значение в одном из двухбитовых полей регистра тегов не означает, что все биты соответствующего регистра стека должны быть обязательно нулевыми.

Мы не раз уже отмечали, что при написании программы разработчик манипули­рует не абсолютными, а относительными номерами регистров стека. По этой при­чине у него могут возникнуть трудности при попытке интерпретации содержи­мого регистра тегов twr. с соответствующими физическими регистрами стека. В качестве связующего звена необходимо привлекать информацию из поля top регистра swr.








Дата добавления: 2015-04-15; просмотров: 1461;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.