Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КС-ZAO / Лекции ЦЭВМруский вариант11.doc
Скачиваний:
188
Добавлен:
07.02.2016
Размер:
15.82 Mб
Скачать

Денормализация

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

Денормализация требует выполнения определенной последовательности операций. Во-первых, регистр SE должен содержать значение порядка. Это значе­ние или загружается непосредственно или может быть результатом некоторой предыдущей операции. Далее, при выполнении самого сдвига величина сдвига берется из регистра SE, а не из данных.

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

Всегда выбирайте арифметический сдвиг для старших бит (HI) входного значения в дополнительном коде (или логический сдвиг для беззнакового входного значения). Подобным образом, для бит, обрабатываемых первыми, не используйте модификатор [SR OR].

Модификатор». = HI, нет [SR OR] Операция сдвига = арифметический, SE = -3 Первая половина входного 10110110 10100011 (старшие биты требуемого значения результата)

SR 11110110 11010100

Oil 00000 00000000

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

Модификатор» = LO, [SR OR] Операция сдвига = логический, SE = -3

Вторая половина входного 00110110 01011101 (младшие биты требуемого значения результата)

SR 111110110 11010100011 0111011001011

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

Модификатор = LO, нет [SR OR] Операция сдвига = логический, SE = -3 Первая половина входного 0111011001011101 (младшие биты требуемого значения результата)

SR 00000000 00000000 000 OHIO 11001011

Модификаторы = HI, [SR OR] Операция сдвига = арифметический, SE = -3 Вторая половина входного 10110110 10100011 (старшие биты требуемого значения результата)

SR 111101101101010001101110 11001011

Нормализация

Числа с избыточными знаковыми битами требуют нормализации. Норма­лизация представляет собой процесс сдвига числа в дополнительном коде внутри некоторой области таким образом, что самый правый знаковый бит выравнивается по позиции самого старшего бита этой области, при этом записывается количест­во позиций, на которое было сдвинуто число. Эту операцию можно представить как преобразование числа с фиксированной точкой в число с плавающей точкой, при котором генерируются мантисса и порядок.

Нормализация осуществляется в два этапа. На первом этапе определяется порядок. На втором - непосредственно осуществляется сдвиг. На первом этапе используется команда ЕХР, которая определяет значение порядка и загружает его в регистр SE. Команда ЕХР опознает модификаторы HI и LO. На втором этапе используется команда NORM. Эта команда опознает не только HI и LO, но и модификатор [SR OR]. Команда NORM использует инверсное значение регистра SE в качестве управляющего кода сдвига, чтобы сдвиг выполнялся в правильном направлении.

Соседние файлы в папке КС-ZAO