Особенности деления мантисс

Основные положения

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

XC = XA - XB + d

РС

РС = РАВ

1. В связи с тем, что мантиссы операндов представляются в прямом коде, независимо от их знака, при делении мантисс используется метод деления в прямых кодах.

2. В связи с тем, что мантиссы операндов (делимого и делителя) представляются в одинаковых форматах, предварительного сдвига мантиссы делимого влево (как при знаковом делении целых чисел) не требуется.

3. В операцию деления вступают нормализованные операнды. Для формата ЕС ЭВМ это означает, что при ненормализованных операндах в начале операции производится их нормализация (сдвигом мантиссы влево).

4. На начальном шаге операции деления мантисс производится так называемое пробное вычитание, при котором из мантиссы делимого вычитается мантисса делителя. Если результат пробного вычитания не отрицателен, то для мантисс, представленных правильными дробями, это означает, что мантисса частного МС≥1, т.е. выходит за границу диапазона дробных мантисс.

При использовании основания порядка, равного 2 (СМ ЭВМ), подобный случай можно трактовать как получение старшей цифры мантиссы в виде единицы целой части.

Действительно, при делении двух нормализованных мантисс, представленных правильными дробями, имеют место соотношения:

для делимого 1/2 ≤ MA < 1;

для делителя 1/2 ≤ МВ < 1;

1/2 < MC=MA-MB < 2 (*).

Из этого соотношения следует, что при S=2 в целой части мантиссы частного может находиться максимум одна единица.

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

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

При положительном результате пробного вычитания для выработки остальных цифр частного выполняется еще (n-1)-й шаг (n – разрядность мантисс операндов).

При отрицательном результате пробного вычитания после него выполняется n шагов для получения всех n цифр мантиссы частного.

Замечание: для выполнения округления результата по методу к ближайшему необходимо получить дополнительную (n-1)ю цифру мантиссы частного.

При выполнении пробного вычитания в формате ЕС ЭВМ (S=16) в случае положительного первого остатка определение числа двоичных цифр, оказывающихся в целой части мантиссы частного, достаточно затруднительно (число этих цифр может быть от 1 до 4). Поэтому рекомендуется на подобную ситуацию реагировать следующим образом:

а) выполнить восстановление мантиссы делимого путем сложения

первого остатка с мантиссой делителя;

б) сдвинуть мантиссу делимого на 4 разряда (одну шестнадцатиричную

цифру) вправо, при этом к порядку частного прибавляется единица.

Подобное действие можно расценивать как принудительную

денормализацию делимого вправо. Чтобы не потерять точность при

сдвиге мантиссы делимого вправо, ее младшая тетрада сохраняется и

в дальнейшем при сдвиге остатка влево поочередно замещает его

освобождающиеся младшие разряды. После денормализации

выполняется пробное вычитание, результат которого будет

обязательно отрицателен.

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

6. Знак частного формируется отдельным действием как сумма по

модулю 2 знаковых разрядов операндов.

7. Остаток от деления как результат операции не сохраняется.

8. При выполнении операций могут иметь место следующие особые случаи, фиксируемые в блоке FPU с помощью специальных флагов:

• деление на 0 (мантисса делителя равна 0);

• переполнение порядка (делимое большое, делитель

маленький);

• исчезновение порядка (делимое маленькое, а делитель

большой).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: