Алгоритм деления без восстановления остатка

Метод деления бинарных чисел без восстановления промежуточных остатков выполняется в последовательности:

-определить знак частного по формуле SgC= SgAÅ SgB;;

-представить числа (операнды) в дополнительном коде в машинном изображении, делимое (всегда), независимо от его знака, берется в прямом коде с положительным знаком, а делитель (всегда), независимо от его знака, берется в дополнительном коде с отрицательным знаком;

-присвоить сумматору значение См:=Амдоп , РгВ := Bмдoп; РгС:=0;

-устраняем дробную часть в делителе, перенося запятую вправо на n разрядов (по аналогии с десятичной системой счисления) и, чтобы дробь не изменилась, в делимом также переносим вправо запятую на n разрядов;

-начиная со старших разрядов, к делимому прибавляют делитель в дополнительном коде, что равносильно вычитанию из делимого делителя и анализируют знак промежуточного остатка:

1) если знак промежуточного остатка 00 (положительный), то в регистр частного РгС записывается 1, начиная со старшего разряда. Остаток сдвигается на один разряд влево (знаковую точку перенести вправо на один разряд), сносится последующий разряд делимого не участвующий до этого в делении. После этого, промежуточный остаток подготовлен к последующему прибавлению делимого в дополнительном коде;

2) если знак промежуточного остатка 11 (отрицательный), то в регистр частного Рг.С записывается 0, начиная со старшего разряда. Остаток сдвигается на один разряд влево (знаковую точку перенести вправо на один разряд), сносится последующий разряд делимого не участвующий до этого в делении. После этого, промежуточный остаток подготовлен к последующему прибавлению к нему делимого в прямом коде со знаком 00;

-действия предыдущего пункта повторяются до получения машинного нуля или заданной точности вычисления (количество разрядов дроби после запятой целой части числа). Запятая дроби устанавливается в частном после сноса последнего разряда целой части делимого.

- знак результату присваивается в соответствии с пунктом 1. Результат деления представлен в регистре частного в прямом коде.

 

ПРИМЕР. Разделить на сумматоре дополнительного кода числа:

А= 16,25; В= –3,25.

 

РЕШЕНИЕ:-определяем знак частного 0 Å 1 =1. В старшие разряды регистра частного заносим значение отрицательного знака - 11;

-устанавливаем регистры РгА, РгВ и См в нулевое (исходное) состояние, очистив их от предыдущей информации;

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

Апр.=00.10000,01; Впр.=11.11,01; Впр.вос.=00.11,01; Вмдоп.= 11.00,11

Для вычитания используем Вмдоп.= 11.00,11.

Для восстановления отрицательного остатка берем Впр.вос.=00.11,01. .

Решение приведено в таблице 14.1.