Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсова ПТЦА (МКІ) 2012.doc
Скачиваний:
21
Добавлен:
27.11.2019
Размер:
4.89 Mб
Скачать

3.3. Мікропрограма ділення цілих чисел без відновлення залишку

Початок. Якщо К[4], то М1, інакше — чекати

М1 <завантаження дільника і обнулення тригерів>

<завантаження старшої частини діленого; присвоєння тригеру Т1 знака діленого>

<завантаження молодшої частини діленого>

<зсув вліво на один розряд змісту регістрів RGB і RGC. Передача значення старшого розряду регістра RGC в молодший розряд регістра RGB, а в молодший розряд регістра RGC змісту тригера Т3>

<записування в тригер Т3 знака результату ділення>

<завантаження в лічильник СТ кількості циклів>

<віднімання дільника в доповняльному коді від значення даних в регістрі RGB>

<завантаження результату віднімання в регістр RGB. Входу адресації ADR мультиплексора MUX надається значення одиниці>

<присвоєння знака залишку тригеру Т4>

Якщо Т4, то М2, інакше

<присвоєння ознаки переповнення тригеру ТП в ЦПК>.

Перейти до М7 (кінець)

М2

М3 Якщо Т4, то М4, інакше

<обнулення тригерів Т3, Т4> Перейти до М5

М4 <додавання дільника до залишку>

М5

<присвоєння тригеру Т3 інверсного значення знака суматора – формування цифри частки>

<декремент змісту лічильника>

Якщо СТ ≠ 0, то М3, інакше М5

М6 <зсув вліво змісту регістра RGC і записування останньої молодшої цифри частки>

Якщо , то М7, інакше

Продовження додатку

М7 Якщо , то М8, інакше

<зсув вліво залишку>

<зсув вправо частки і присвоєння їй знака діленого>

М8 Кінець.

3.4. Алгоритм ділення у додатковому коді(11)

При діленні чисел у додатковому коді труднощі, пов'язані з корекцією результату (як при множенні в додатковому коді), практично відсутні, тому що сам базовий алгоритм ділення без відновлення остачі припускає використання від’ємного дільника, додаткового коду для обрахування

і обліку знаків остачі й дільника на кожному кроці ділення. Крім того, ділене бере участь в операції тільки на першому кроці, а далі використаються залишки, які згідно базового алгоритму можуть бути як додатними, так і від’ємними. Тому не має потреби розглядати алгоритми ділення в додатковому коді, де знаки операндів обробляються окремо від їхніх числових частин.

При діленні в додатковому коді можливі комбінації знаків операндів утворять наступний перелік.

  1. Х>0, Y>0, Z=X/Y>0. Ділення в цьому випадку не відрізняється від ділення доданих операндів у прямому коді.

  2. Х<0, Y>0, Z=X/Y<0. Зауважимо, що тут з від’ємного діленого повинен відніматися додатний дільник, на відміну від ділення без відновлення остачі в прямому коді, коли на першому кроці Х>0, Y<0. Тому псевдознакове число частки z0=0, отримане за знаком нульової остачі відповідно до алгоритму ділення без відновлення остачі, вказує на переповнення розрядної сітки через те, що |X| > |Y|. Якщо |X| < |Y|, то переповнення розрядної сітки немає й це число є правильним знаковим числом частки (тобто, z0=1). Знаки всіх інших залишків у цьому випадку визначають інверсні значення чисел частки. У результаті в PZ буде записаний зворотний код негативної частки. Для округлення й одержання додаткового коду результату необхідно додати одиницю до п+1-го розряду.

  3. Х>0, Y<0, Z=X/Y<0. Цей випадок легко зводиться до звичайного ділення в прямому коді, якщо вважати, що в наявності є –Y та+Y. Однак для формування правильного знаку часного й зворотнього коду відємного результату необхідно псевдознакове число й число частки одержувати рівними числами знакових розрядів відповідних залишків. Переповнення розрядної сітки фіксується по z0=0. Наприкінці ділення для утворення додаткового коду й округлення частки треба додати одиницю в n+1-й розряд.

  4. Х<0, Y<0, Z=X/Y>0. На першому кроці алгоритму для формування правильного знака частки z0=0 необхідно з від’ємного діленого віднімати додатний дільник (z0=l відповідає переповненню розрядної сітки). Далі цей випадок зводиться до третього. Тут всі числа частки, включаючи псевдознакову, дорівнюють знакам залишків. ГСА ділення в додатковому коді наведена на рис. 10 (дві мікрооперації на PZ перед кінцевою вершиною ГСА відповідають округленню й утворенню додаткового коду результату).

Продовження додатку

Рис.10.

Продовження додатку

Складемо числову діаграму ділення чисел Х=21/32 на Y=-24/32 за алгоритмом ділення чисел у додатковому коді (ХДК = 00,10101, YДК=11,01000). Діаграма наведена в табл. 10.

Таблиця 10

00,10101

11,01000

0,000000

000

Початковий стан

11. 01000

+Y

11,11101

z0

R0

11,11010

1

001

Зсув

00. 11000

-Y

00,10010

z1

R1

01,00100

10

010

Зсув

11,01000

+Y

00,01100

z2

R2

00,11000

100

011

Зсув

11 01000

+Y

00,00000

z3

R3

00,00000

1000

100

Зсув

11 01000

+Y

11,01000

z4

r4

10,10000

10001

101

Зсув

00. 11000

-Y

11,01000

z5

R5

10,10000

100011

110

Зсув

00,11000

-Y

11,01000

z6

R6

10,10000

1000111

111

Зсув

1

+1 Округлення

1,00100

Частка

END

3. Якщо Х<0, Y<0, то корекція результату може бути зроблена об'єднанням двох попередніх варіантів, тобто, при множенні на знаковий розряд множника виконують розрахунки, а підсумовування й зрушення часткових добутків роблять із використанням модифікованого додаткового коду. Очевидно, що час множення в цьому випадку буде дорівнювати

TУ ДК = (n+1)(tc+t+).

Продовження додатку