Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Автоматы-Лекции.doc
Скачиваний:
154
Добавлен:
23.02.2016
Размер:
4.16 Mб
Скачать

4.4. Множення чисел, представлених у формі з фіксованою комою, на двійковому суматорі доповняльного коду

 

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

Добуток доповняльних кодів співмножників дорівнює доповняльному коду результату тільки у випадку позитивного множника.

Нехай множимое А - будь-яке число, тобто А = [А]д, а множник В> 0. Тоді

АВ = [А]д∙0,b1,b2…bn=[А]д∙b1∙2-1+[А]д∙b2∙2-2+…+[А]д∙bn∙2-n (4.6)

На підставі теореми про складання додаткових кодів можна стверджувати, що в правій частині рівняння (5.6) стоїть доповняльний код результату.

Таким чином, множення на суматорі додаткового коду полягає в аналізі розрядів множника і при b1 = 1 в додаванні доповняльного коду множимого до вмісту суматора.

При цьому повинні здійснюватися модифіковані зрушення.

 

Приклад 4.3. Помножити на суматорі додаткового коду (використовується метод 2) числа А = -0,10101 і В = 0,1001.

Розвязок: Спочатку записуються машинні зображення чисел: = 11,01011;= 00,10011.

Послідовність дій, вироблених над числами, представлена в табл. 5.3.

Відповідь: С = АВ = - 0,0110001111.

 

Тепер розглянемо випадок, коли множимое А - будь-яке число, а множник В <0. Тоді [В] д = 1,,.

На підставі (3.24) можна записати, що В = [В]д – 2, або В=0,,. Отже, добуток чисел

 

АВ=А(0,,)=А∙0,, – А.

(4.7)

Таблиця 4.3

 

Сумматор

Регістр B

Примітка

00,00000

+ 11,01011

------------

11,01011

 

11,10101

+ 11,01011

------------

11,00000

 

11,10000 11,11000

------------

11,11100

+ 11,01011

10011

 

 

 

 

→11001

 

 

 

 

→01100 →00110

 

→00011

СМ: = 0; РгА: = ; РгВ: = [В'];

b5=1; СМ = [СМ] + [РгA];

 

 

 

[]; [];

b4=1; СМ:=[СМ] +[РгF];

[]; [];

 

 

b3 = 0; []; [];

b2 = 0; []; [];

b1 = 1; СМ:= [СМ] + [РгA]

[]; [];

 

Кінець

11,00111 11,10011

0001

→10001

 

 

 

 

Формула (4.7) показує, що при негативному множнику добуток доповняльних кодів операндів не дорівнює доповняльному коду результату.

Якщо ввести заміну – А на , то можна вивестинаступне правило.

Якщо множник негативний, то добуток чисел на суматорах доповняльного коду виходить додаванням поправки [A] до добутку додаткових кодів співмножників.

 

Приклад 4.4. Помножити на суматорі додаткового коду за методом 2 з використуванням структурної схеми прикладу 5.1 числа

А = - 0,10111 і В = - 0,11001.

Розвязок: Спочатку запишемо машинні зображення чисел:

 

=11,01001; = 11,00111;= 00,10111.

 

Послідовність дій, вироблених над числами, показана в табл. 4.4.

Відповідь: С = АВ = 0,1000111111.

 

Таблиця 4.4

Суматор

Регістр B

Примітка

00,00000

+ 11,01011

------------

11,01011

 

11,10101

+ 11,01011

------------

11,00000

 

11,10000 11,11000

------------

11,11100

+ 11,01011

10011

 

 

 

 

→11001

 

 

 

 

→01100 →00110

 

→00011

СМ: = 0; РгА: = ; РгВ: = [В'];

b5=1; СМ = [СМ] + [РгA];

 

 

 

[]; [];

b4=1; СМ:=[СМ] +[РгF];

[]; [];

 

 

b3 = 0; []; [];

b2 = 0; []; [];

b1 = 1; СМ:= [СМ] + [РгA]

[]; [];

 

Кінець

11,00111 11,10011

0001

→10001

 

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