Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5_Алг_комп_множ_в_ ДК_2.doc
Скачиваний:
3
Добавлен:
21.12.2018
Размер:
432.64 Кб
Скачать

Рекомендується виконати домашнє завдання 25

Ще один варіант об’єднання корекції добутку з підсумовуванням часткових добутків заснований на перетворенні цифр множника. З попереднього відомо, що при Х>0 множення в доповняльному коді можна виконувати за алгоритмами множення в прямому коді, якщо тільки підсумовування часткових добутків і зсуву виконувати за правилами додавання і зсуву модифікованого додаткового коду. Тому далі будемо розглядати лише варіанти, що відповідають Х<0.

1. Нехай Х<0, Y>0, тоді абсолютна величина вмісту числових розрядах операнда дорівнює . Тому, якщо до числових розрядів операнда додати знаковий розряд, вважаючи при цьому, що він має штучну вагу -1, то абсолютна величина вмісту числових розрядів множника, перетвореного таким чином, складе

Отже, множення на можна виконувати так само, як і в прямому коді, тобто

2. У випадку Х<0, Y<0, досить перетворити множник до вигляду ,

а підсумовування і зсуви виконувати за правилами підсумовування і зсув модифікованих доповняльних кодів.

Для перетворення в немає необхідності виконувати окремі операції відповідно до вищенаведених формул. Покажемо, як таке перетворення можна об’єднати зі зсувом множника і суми часткових добутків. Позначимо числову частину операнда як . Нехай Тоді можна записати, що

Представимо ваги розрядів (крім знакового) у цьому виразі як

0 1

0 1 0 1

0 1

0 1

Рис.29

Тоді одержимо

Таким чином, для додання знаковому розряду ваги –1 необхідно цифри множника піддати перетворенню

Таблиця 30

0

0

1

1

0

1

0

1

0

1

-1

0

Однак оскільки то . Очевидно, що для одержання , досить порівнювати цифри в сусідніх розрядах множника (табл. 30). При =0 підсумовування не виконується, при =1 роблять додавання множеного до суми часткових добутків, при виконують віднімання множеного із суми часткових добутків. Тому що множення виконується і на знаковий розряд, то число кроків множення дорівнює . Для того, щоб окремі розряди добутку займали наприкінці операції правильні вагові позиції, зсув на останньому кроці не виконується. У перетворенні -й цифри множника беруть участь i-ва і i+1–я його цифри. Тому при множенні з молодших розрядів регістр множника повинний мати додатковий молодший розряд, де зберігається i+1-а цифра. ГСА множення в доповняльному коді з перетворенням цифр множника наведено на рис.29, де - вміст молодшого додаткового розряду (перед початком множення =0).

Приклад 30. Складемо цифрову діаграму множення чисел Х=-5/16 і Y=-15/16 у доповняльному коді по алгоритму з перетворенням цифр множника (табл. 31). Зауважимо, що і .

Таблиця 31

ЛЧК

Пояснення

1,101

11,10

111,1

1111,

1111

1

1

0

1

1,

0

1

1

0

0

11,0001

00,00000000

00,1111

000

001

010

011

100

END

Вихідний стан

Результат підсумовування Зсув

Зсув,+0

Результат підсумовування Зсув

Результат підсумовування Зсув

+0

00,1111

00,01111

00,001111

11,0001

11,010011

11,1010011,

00,1111

00,1001011

00,01001011

00,0000

00,01001011

Приклад 31. Складемо цифрову діаграму множення чисел Х=9/16 і

Y=-12/16 у доповняльному коді за алгоритмом на рис.29 (табл. 33). Зауважимо, що й оскільки, то в цьому випадку цифра не робить впливи на процес множення (табл.32).

Таблиця 32

ЛЧК

Пояснення

0,100

1

0

11,0100

00,00000000

000

Вихідний стан

11,0100

11,0100

Результат підсумовування

00,10

0

1

11,10100

001

Зсуву

000,1

0

0

11,110100

010

Зсуву

0000,

1

0

11,1110100

011

Зсуву

11,0100

11,0010100

Результат підсумовування

0000

0

1

11,10010100

100

Зсуву

Z

END

Приклад 32. Складемо цифрову діаграму множення чисел і на доповняльному коді за алгоритмом на рис. 29 (табл. 33). Зауважимо, що . Таким чином, , тобто, . Як і слід було очікувати, результат множення тут такий самий, як і в попередньому прикладі (тобто, ), незважаючи на іншу послідовність мікрооперацій для його одержання.

Таблиця 33

ЛЧК

Пояснення

1,011

1

0

00,1100

00,00000000

000

Вихідний стан

11,0100

11,0100

Результат підсумовування

11,01

1

1

11,10100

001

Зсуву

111,0

1

1

11,110100

010

Зсуву

1111,

0

1

11,1110100

011

Зсуву

00,1100

00,1010100

Результат підсумовування

1111

1

0

00,01010100

100

Зсуву

11,0100

11,10010100

Результат підсумовування

Z

END

9

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]