Реализация процессором арифметических операций. Будько М.Б - 43 стр.

UptoLike

42
4.2.4.3 Проверка корректности деления и определение знакового раз-
ряда частного
Возможен случай, когда после деления получается частное, превы-
шающее по размеру отведенные для него 8 разрядов. Такой результат счи-
тается некорректным. Это требует заранее проверять корректность резуль-
тата деления.
Условие корректности деления можно записать в виде неравенств:
а) |А|/|В| < 2
n
если знаки делимого А и делителя В совпадают;
б) |А|/|В| < 2
n
+ 1 – если знаки делимого А и делителя В различны.
Здесь nчисло цифровых разрядов делителя (частного). Значение
справанаибольшее по модулю целое число, состоящее из n цифровых
разрядов (или из n + 1, если учитывать знаковый разряд частного). Счита-
ем, что положительное частное записывается в прямом коде (а), а отрица-
тельноев дополнительном (
б).
Таким образом, для проверки корректности деления нужно вычис-
лить разности:
а) |А| - |В| × 2
n
,
б) |А| - |В| - |В| × 2
n
.
При отрицательном значении разности операция деления корректна,
при положительномнет.
Очевидно, что проверка корректности деления для случая, когда зна-
ки делимого и делителя совпадают, и когда они различны, несколько отли-
чаются. Если модифицировать условие для проверки корректности деле-
ния при совпадении знаков делимого и делителя, то оба условия можно
привести
к общему виду:
|А| - |D| - |В| × 2
n
< 0,
где |D| = 0 при совпадении знаков делимого и делителя, |D| = |В| при раз-
личных знаках делимого и делителя.
Кроме того, поскольку проверка корректности деления требует
пробного вычитания величины |В| × 2
n
, она может выполняться одновре-
менно с первым шагом деления (формированием знакового разряда част-
ного).
Опишем этот алгоритм:
Выполнение операции |А| - |D|. При разных знаках операндов она за-
меняется операцией сложения делимого и делителя, выровненных по
младшим разрядам. При одинаковых знаках операндов заменяется
операцией сложения делителя с нулем.
Сдвиг
полученного результата на 1 разряд влево.
Сложение результата с делителем, выровненным по старшим разря-
дам, при разных знаках операндов или вычитание делителя (сложени-
ем с его дополнением) при одинаковых знаках операндов.