Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Переполнение разрядной сетки



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

  1. При сложении чисел с одинаковым знаком получается результат другого знака.
  2. При сложении двух чисел имеется перенос из старшего числового разряда в знаковый разряд, но отсутствует перенос из знакового разряда.
  3. При сложении двух чисел имеет место перенос из знакового разряда, но отсутствует перенос из старшего числового разряда в знаковый.
  4. При наличии обоих переносов (из старшего числового разряда в знаковый и из знакового разряда) переполнение разрядной сетки отсутствует.

При наличии очень жестких ограничений на разрядность аппаратных средств эти критерии позволяют обнаруживать переполнение разрядной сетки. Однако более удобный критерий переполнения имеет место при использовании модифицированных кодов.

Модифицированные коды.

В модифицированных кодах вслед за знаковым разрядом вводится разряд переполнения, имеющий формат цифр используемой системы счисления. Т.е. в двоичной системе счисления разряд переполнения занимает один бит. В десятичной и шестнадцатеричной – четыре бита. В восьмеричной – три бита. При выполнении алгебраического сложения первый знаковый разряд, он обозначается Sg1, всегда сохраняет правильное значение знака результата. Разряд переполнения служит для контроля переполнения разрядной сетки.

В двоичной системе счисления запись числа в модифицированном коде имеет вид:

Sg1 Sg2.c1, c2, …, cn, где c1, c2, …, cn – числовые разряды, Sg1 Sg2 – два знаковых разряда, каждый из которых занимает один бит, точка между знаковой и числовой частью служит исключительно для удобства чтения чисел, так как в разрядной сетке регистра отсутствует какой-либо разделитель этих двух частей в записи числа. Положение запятой при такой записи обозначается только в пояснениях, которые содержатся в сопровождающей документации.

Критерий переполнения d разрядной сетки формулируется следующим образом:

d=0 Û Sg1=Sg2.

Если Sg1 ¹ Sg2, и Sg1=0, говорят о положительном переполнении разрядной сетки.

Если Sg1 ¹ Sg2, и Sg1=1, говорят об отрицательном переполнении разрядной сетки.

В случае чисел с фиксированной запятой положительное переполнение разрядной сетки является фатальным и сопровождается выработкой требования прерывания. Отрицательное переполнение разрядной сетки не требует прерывания. В этом случае результату присваивается значение 0. 

При представлении чисел в форме с плавающей запятой данные представляются в нормализованном виде. Нарушение нормализации означает, что мантисса результата вычислений не удовлетворяет заданному диапазону значений. Как было отмечено выше, допустимые значения нормализованной мантиссы находятся в диапазоне p-1£ |m| < 1. Поэтому переполнение разрядной сетки мантиссы называется нарушением нормализации справа, критерием нарушения нормализации справа является d=1 (d=1Û Sg1 ¹ Sg2).

Переполнение разрядной сетки требует выполнения определенных действий: если Sg1 ¹ Sg2, необходимо выполнить арифметический сдвиг мантиссы на один разряд вправо и прибавить единицу к значению порядка. Поскольку при сложении двух чисел может произойти переполнение разрядной сетки не более, чем на один разряд, процедура нормализации при этом занимает один такт автоматного времени.

Если нарушена левая часть приведенного неравенства, говорят о нарушении нормализации слева. Критерием нарушения нормализации слева является величина l.

l=1 Û Sg2=c1. Т.е. в случае равенства значений знакового разряда и старшего числового разряда при отсутствии переполнения разрядной сетки. Очевидно, l=1 означает, что значение мантиссы меньше, чем р-1. Для нормализации числа требуется выполнить сдвиг мантиссы на один разряд влево и вычесть 1 из значения порядка.

Положительное переполнение разрядной сетки порядка сопровождается выработкой требования прерывания. При отрицательном переполнении разрядной сетки вырабатывается машинный нуль, т.е. порядок и мантисса обнуляются.


Поделиться:



Последнее изменение этой страницы: 2019-03-29; Просмотров: 694; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.009 с.)
Главная | Случайная страница | Обратная связь