Реферат Курсовая Конспект
Хід отримання результатів - раздел Образование, Вміти отримувати результати завдяки використанню машинного алгоритму множення цілих двійкових чисел 5.4.1.Множення Цілих Двійкових Чисел Зі Знаком У Прямому І Д...
|
5.4.1.Множення цілих двійкових чисел зі знаком у прямому і додатковому кодах виконується шляхом покрокового додавання значення множеного, яке зсувається, та часткової суми, якщо у відповідному розряді множника присутня одиниця.
5.4.2.При множенні чисел у прямому коді знакові та значущі розряди обробляються нарізно. Для визначення знака результату виконується додавання цифр, записаних у знакових розрядах операндів.
5.4.3. Множення цілих двійкових чисел у додатковому коді виконується за алгоритмом, аналогічним множенню чисел у прямому коді, але знак результату отримується автоматично, причому в операції множення беруть участь не тільки значущі, але і знакові розряди чисел. При цьому слід мати на увазі дві особливості. Якщо виконується множення множеного А на знакову одиницю від’ємного множника В, то необхідно для відповідного додавання використати не А, а [–А]дк. Якщо ж від’ємним числом є множене, то в кожному додаванні беруть участь одиниці, які отримуються внаслідок дописування зліва перед множеним незначущих нулів і наступної інверсії множеного.
Приклад 5.1.
A = + 1010 = 0 10102 (множене); [ А]дк = 0 1010
B = – 1310 = 1 11012 (множник); [ В]дк = 1 0011
10011
1 0110
1 01111110
Під час множення на знакову одиницю множника В була виконана корекція – як останній доданок використано [–А]дк = 1 0110.
Оскільки в знаковому розряді результату маємо 1, то це означає, що результатом множення є двійкове число в додатковому коді. Для переходу до прямого коду результат треба проінвертувати і виконати операцію додавання над проінвертованим кодом і одиницею:
1 10000001+1= 1 10000010.
Результат:
D = 1 100000102 –> – (1·27 + 0·26 + 0·25 + 0·24 + 0·23+0·22 + 1·21+0·20 ) = – (128+2) = –13010.
Приклад 5.2
A = –1010 (множене); [ А]дк = 1 0110
B = +1310 (множник); [ В]дк = 0 1101
1 0110
0 1101
111110110
00000000
1110110
110110
00000
Оскільки множене є від’ємним числом, то при додаванні використані одиниці множеного, які отримані шляхом інверсії незначущих нулів у старших розрядах, при наявності ненульового розряду множника.
У знаковому розряді добутку маємо 1, отже, результат множення отримали в додатковому коді. Для переходу до прямого коду результат треба проінвертувати і виконати операцію додавання над проінвертованим кодом і одиницею:
1 10000001 + 1 = 1 10000010.
Результат:
D = 1 100000102 = – (1·27+0·26 + 0·25 + 0·24 + 0·23 + 0·22 + 1·21 + 0·20) = = – (128+2) = – 13010
5.4.4. Машинний алгоритм, який розглянуто в даній лабораторній роботі, характеризується тим, що для множеного, множника і часткової суми використовуються регістри однакової довжини (наприклад, 8‑бітові). Результат (добуток) зберігається в парі регістрів, в одному з яких зберігалась часткова сума, а в другому – множник. При цьому старша частина результату розміщується в регистрі часткової суми, а молодша – в регистрі множника.
У даному алгоритмі виконуються такі дії:
1. Зсув множника на 1 розряд в сторону молодших розрядів з урахуванням у старшому розряді поточного вмісту ознаки CF, тобто виконання операції RCR.
2. Якщо значення, висунуте з правого розряду і відтворене в ознаці CF, не дорівнює 1, то перехід до 4-го пункту.
3. Додавання множеного з частковою сумою. Присвоєння ознаці CF значення 0.
4. Зсув часткової суми на 1 розряд у сторону молодших розрядів з урахуванням у старшому розряді поточного вмісту ознаки CF, тобто виконання операції RCR.
5. Якщо кількість виконань пунктів 1– 4 не дорівнює кількості розрядів n у множника, то знову перейти до пункту 1.
6. Корекція значення молодшої частини результату множення шляхом зсуву множника на 1 розряд у сторону молодших розрядів з урахуванням у старшому розряді поточного вмісту ознаки CF, тобто виконання операції RCR.
5.4.5. Машинний алгоритм множення
Схема одного з машинних алгоритмів множення наведена нижче.
ні
так
так
ні
Приклад 5.3 A = 610 = 01102 (множене);
B = 310 = 00112 (множник);
D = 00002 (часткова сума);
N = 4
№ такту | Дія | Ознака [CF] | i | |
Зсув В вправо | B = [0]001|1 | |||
[CF] = 1, отже, додаємо множене до часткової суми; [CF] := 0 | D = D + A | |||
Зсув D вправо | D = [0]011|0 | |||
Зсув В вправо | B = [0]000|1 | |||
[CF] = 1, отже, додаємо множене до часткової суми; [CF] := 0 | D = D + A | |||
Зсув D вправо | D = [0]100|1 | |||
Зсув В вправо | B = [1]000|0 | |||
Зсув D вправо | D = [0]010|0 | |||
Зсув В вправо | B = [0]100|0 | |||
Зсув D вправо | D = [0]001|0 | |||
Зсув В вправо | B = [0]010|0 |
Результат: D:B –> 0001: 0010 000100102 = 1810.
– Конец работы –
Эта тема принадлежит разделу:
МНОЖЕННЯ ЦІЛИХ ДВІЙКОВИХ ЧИСЕЛ... Мета роботи У результаті виконання лабораторної роботи...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Хід отримання результатів
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов