Page 102 - 4339
P. 102
використовують ділення без відновлення залишку.
У разі ділення цілих чисел часто ділене X подається в 2n-
розрядному форматі, а дільник Y — у n-розрядному.
Алгоритм ділення цілих чисел у прямому коді без
відновлення залишку реалізується в такій послідовності:
1. У регістри А, В i С послідовно записуються із вхідної
шини n – розрядний дільник Y та 2n-розрядне ділене X. У
лічильник циклів СТ заноситься число циклів n -1.
2. Ділене X та дільник Y аналізуються на рівність нулю.
Якщо ділене X = 0, то частці Z присвоюється нульoве значення
і ділення закінчується. Якщо дільник Y = 0, то ділення
переривається.
3. Установлюється можливість ділення без переповнення
розрядної сітки. Для цього значення діленого подвоюється
зсувом вліво на один розряд. Із зсунутого діленого віднімається
дільник. Операція віднімання дільника замінюється на його
додавання у доповняльному коді і визначається перший
залишок R 0 за формулою
R 0 = 2|X| - Y = 2|X| + |-Y | Д.
Якщо R 0 < 0, то ділення можливе, якщо R 0 ≥ 0, виникає
переповнення розрядної сітки і ділення припиняється.
4. Якщо ділення можливе, виконуються такі основні дії:
- частковий залишок в регістрі В і вміст регістра С
зсуваються вліво на один розряд (тобто подвоюються);
- із зсунутого залишку віднімається дільник, якщо
попередній залишок R і-1 ≥ 0, або додається, якщо R і-1 < 0. Це
визначається рекурентним співвідношенням
2 R i-1 + | Y |, якщо R і-1 < 0;
R i =
2 R i-1 + | -Y | Д, якщо R і-1 ≥ 0,
де і = 1, 2, ..., п-1.
- якщо відбувається зсув вліво, в молодший розряд
регістра С записується цифра частки r згідно із
співвідношенням
0, якщо R і-1 < 0;
r i =
1, якщо R і-1 ≥ 0,
101