Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
4.11. ДЕЛЕНИЕ ЧИСЕЛ В ДОПОЛНИТЕЛЬНОМ КОДЕТак же как и при умножении, здесь возможны два пути: 1) перевод операндов в прямой код, получение частного обычным способом и перевод его в дополнительный код перед записью в память; 2) деление операндов в дополнительном коде с получением частного в требуемом виде. Второй путь так же прост, как и первый. Необходимо только управлять логикой образовании цифр частного, чему способствуют два обстоятельства: 1) делимое в процессе операции участвует всего лишь один раз, а дальше текущие остатки получаются автоматически; 2) нетрудно организовать получение цифр дополнительного кода отрицательного частного непосредственно в процессе деления путем передачи знаковых цифр остатков из СМ в регистр частного напрямую, минуя БИЦ. Рассмотрим четыре возможных случая, определяемые комбинациями знаков дополнительных кодов операндов.
Деление производится как обычно: знак частного определяется путем сложения знаковых цифр операндов по модулю 2 и одновременно формируется дополнение модуля делителя до двух. Цифры частного получаются, как уже известно, путем инвертирования знаковых цифр остатков от деления в БИЦ.
Ход деления обычный с учетом следующих особенностей. Псевдознаковая цифра частного (сигнал о возможном переполнении разрядной сетки) должна получаться в этом случае равной знаковой цифре первого остатка, так как здесь производится вычитание модуля делимого из модуля делителя в силу исходного сочетания знаков операндов. Значит знаковая цифра нулевого остатка должна поступать в регистр частного, минуя БИЦ, т. е. не инвертируясь. Так как знак нулевого остатка имеет инверсное значение, то при продолжении деления обычным путем все другие остатки получаются также с инверсными знаками. Значит, в регистр частного также будут записываться инверсные цифры и в конце деления в нем образуется обратный код отрицательного частного. Для округления результата из него надо вычесть единицу
Этот случай является зеркальным отображением предыдущего: псевдознаковая цифра частного получается как обычно путем инверсии знака первого остатка, а для того чтобы получить инверсные цифры частного, нужно брать их равными знаковым цифрам соответствующих остатков без инвертирования их в БИЦ. В конце деления необходимо добавить к
В этом случае все цифры частного (включая псевдознаковую) должны быть равны знаковым цифрам соответствующих остатков. На первом этапе деления одновременно с определением истинного знака частного определяется величина модуля делителя, т. е. возникает ситуация, сходная с начальными условиями 2-го случая. Значит, псевдознаковая цифра частного определяется значением знаковой цифры первого остатка. Если далее производить деление обычным путем, то, как уже известно из 2-го случая, будут получаться инверсные цифры модуля частного. Следовательно, знаковые цифры остатков надо посылать в регистр частного, минуя БИЦ, так как частное здесь должно быть положительным и его дополнительный код совпадает с прямым. Таким образом, деление чисел, представленных в дополнительном коде, производится в 3 этапа. На первом этапе определяется знак частного путем сложения знаковых цифр операндов по модулю 2. На втором этапе производится нулевой шаг деления для проверки частного на переполнение разрядной сетки путем алгебраического сложения делимого с делителем, которому приписывается знак, противоположный знаку делимого. Псевдознаковая цифра модуля частного определяется как обратное значение знаковой цифры первого остатка, если делимое положительное. Псевдознаковая цифра берется тождественно равной знаку первого остатка, если делимое отрицательное. На третьем этапе производятся все последующие Пример. I. Определяется знак частного II. Проверка на переполнение (нулевой шаг)
Псевдознак модуля частного равен знаку первого остатка, так как делимое отрицательное, т. е. псевдознак частного равен 0. III. Определяются значащие цифры частного обычным путем.
Производим округление результата и переводим его в дополнительный код:
Пример. I. Знак частного И. Псевдознаковая цифра частного равна обратной величине знака первого остатка, так как делимое положительное
Псевдознак частного равен 0. III. Значащие цифры частного определяются знаками остатков, так как делитель отрицателен.
Производим округление частного и перевод его в дополнительный код:
Пример. I. Знак частного Модуль делителя II. Псевдознак модуля частного равен знаку первого остатка, так как делимое отрицательное
Псевдознак частного равен 0.
Округление частного Таким образом, алгоритм деления чисел в дополнительных кодах сводится к следующему. На каждом шаге деления производится алгебраическое сложение кода текущего остатка (на нулевом шаге делимого) и кода делителя, которому присваивается знак, противоположный знаку текущего остатка (делимого). При этом, если знаки вновь полученного остатка и делителя одинаковы, то в текущий разряд частного записывается единица, в противном случае — ноль. После этою вновь полученный остаток и частное сдвигаются на один разряд влево. Деление прекращается после вычисления
|
1 |
Оглавление
|