- •Міністерство освіти і науки україни
- •"Організація та функціонування комп'ютерів"
- •І. Теоретичні відомості
- •1.1. Коротка історія розвитку комп’ютерної техніки
- •1.2. Принципи організації комп’ютера фон-Неймана
- •Іі. Опис архітектури навчального комп’ютера DeComp
- •2.1. Організація навчального комп’ютера – симулятора DeComp
- •2.2. Пульт управління навчального комп’ютера
- •Закладка “Документація до “Навчальної еом”
- •2.4 Закладка “Пристрій підготовки даних”
- •2.4.1 Порядок введення інформації на перфострічку
- •III. Вказівки до виконання лабораторних робіт Лабораторна робота № 1
- •1. Теоретична частина
- •1.1 Загальні поняття про системи числення
- •Позиційні системи числення, які застосовуться у комп’ютерах
- •1.2.1 Двійкова система числення
- •Вісімкова система числення
- •Шістнадцяткова система числення
- •1.3. Переведення чисел з однієї позиційної системи числення до іншої
- •1.3.1. Переведення цілих чисел
- •1.3.2 Переведення правильного дробу
- •1.3.3 Особливості переведення вісімкових і шістнадцяткових чисел до двійкової системи числення і навпаки
- •Лабораторна робота № 2
- •1. Теоретичні відомості
- •1.2. Інструкції арифметичних операцій:
- •1.3. Призначення Регістру Ознак
- •1.4. Дослідження виконання інструкцій навчального комп’ютера
- •2. Порядок виконання роботи
- •Вимоги до звіту
- •Лабораторна робота № 3
- •1. Теоретичні відомості
- •1.2. Організація програмних циклів
- •1.3. Особливості виконання операцій зсуву
- •2. Порядок виконання роботи:
- •3. Вимоги до звіту.
- •Лабораторна робота № 4
- •1. Теоретичні відомості
- •1.1. Загальні відомості про логічні функції
- •1.2. Опис логічних інструкцій навчального комп’ютера
- •1.3. Подання від’ємних чисел у комп’ютерах
- •1.3.1. Прямий код
- •1.3.2. Обернений код
- •1.3.3. Доповняльний код
- •1.3.4. Модифіковані коди
- •2. Порядок виконання роботи:
- •3. Вимоги до звіту
- •Лабораторна робота № 5
- •1. Теоретична частина.
- •1.1. Додавання і віднімання двійкових чисел з фіксованою комою
- •1.2. Додавання двійкових чисел у модифікованому доповняльному коді
- •1.3. Додавання двійкових чисел у модифікованому оберненому коді
- •1.4. Переповнення розрядної сітки при додаванні у модифікованих машинних кодах
- •1.5. Множення двійкових чисел без знаку
- •2. Порядок роботи:
- •3. Вимоги до звіту
- •Лабораторна робота № 6
- •1. Теоретична частина
- •1.1. Подання чисел з рухомою комою
- •1.2. Правила додавання (віднімання) двійкових чисел з рухомою комою
- •2. Порядок роботи:
- •3. Вимоги до звіту.
- •Лабораторна робота № 7
- •1. Теоретична частина
- •1.1. Ділення двійкових чисел без знаку
- •1.1.1. Ділення з відновленням залишку
- •1.1.2. Ділення без відновлення залишку
- •1.2. Множення двійкових чисел із знаком
- •1.2.1 Множення чисел у форматі з фіксованою комою
- •1.3. Ділення двійкових чисел у форматі з фіксованою комою.
- •2. Порядок роботи
- •3. Вимоги до звіту.
- •Література.
- •Додаток
1.2.1 Множення чисел у форматі з фіксованою комою
Ця операція складає основу усіх методів множення любих чисел, поданих у інших форматах. При виконанні множення велике значення мають код подання чисел і, у деяких випадках, основа системи числення. Багато методів за алгоритмом виконання множення для різних систем числення інваріантні. Місце коми при множенні чисел з фіксованою комою не грає ролі і у результаті завжди наперед відомо. Будемо вважати, що співмножники представляють правильні дроби.
У разі множення дійсних чисел з фіксованою комою множене
A =
і множник B =
створюють добуток згідно з таким виразом
де 0, 1, . , d-1 – цифрові розряди;
= 0, 1, - знакові розряди.
З урахуванням особливостей подання чисел у різних форматах кодування добуток у загальному випадку має вигляд
Z = A * B = ( a + a0)(b + b0) = ab +a0b +ab0 + a0b0 .
Залежно від коду подання чисел, результат має різні значення, які для створення правильного добутку необхідно коректувати або попередньо перетворювати співмножникі.
Множення чисел у доповнювальних кодах відрізняється від множення чисел без знаку тим, що власне знаковий розряд приймає участь в операції множення, а самі числа у процесі множення сприймаються як числа у прямих кодах.
Якщо n – розрядний множник В 0, то у доповнювальному коді він буде таким:
0 b1 b2 b3 . . . bn-1, де b1 b2 b3 bn-1 = | B |
Множення, починаючи з молодших розрядів, будь якого m – розрядного числа А на такий множник буде забезпечувати правильний результат.
Необхідно врахувати, що під час зсуву вправо від’ємного проміжного добутку у крайній зліва розряд числа (перший справа від коми) записується одиниця.
Розглянемо приклади множення додатного та від'ємного множенного (+А та –А) на додатний множник (+В) у доповнювальних кодах.
Приклад 1 А = + 9/1610; Aдоп = Апр = 0,10012
і В = + 5/1610; Вдоп = Впр = 0,01012
0,1 0 0 1 * 0,0 1 0 1 |
|
0,1 0 0 1 |
копія множеного (b-4 = 1); |
0,0 1 0 0 1 |
зсув проміжного добутку (ДП); |
0,0 0 1 0 0 1 |
зсув ДП (b-3 = 0); |
+ 0,1 0 0 1 |
додавання копії множеного до двічі зсунутого ДП (b-2 = 1); |
0,1 0 1 1 0 1 |
результат додавання; |
0,0 1 0 1 1 0 1 |
зсув ДП; |
0,0 0 1 0 1 1 0 1 знак добутку |
зсув ДП (b-1 = 0), отриманий результат у доповнювальному коді; |
Результат: (А * В)пр = (А * В)доп = 0,001011012 = + 45/25610.
Приклад 2 А = - 9/1610; Апр = 0,10012; Aдоп = + 0,0001 = 1,01112;
В = +5/1610; Вдоп = Впр = 0,01012.
1,0 1 1 1 * 0,0 1 0 1 |
|
1,0 1 1 1 |
копія множеного (b-4 = 1); |
1,1 0 1 1 1 |
зсув проміжного добутку (ДП), справа від коми дописана 1; |
1,1 1 0 1 1 1 |
зсув ДП (b-3 = 0), справа від коми дописана 1; |
+ 1,0 1 1 1 |
додавання копії множеного до двічі зсунутого ДП (b-2 = 1); |
1,0 1 0 0 1 1 |
результат додавання; |
1,1 0 1 0 0 1 1 |
зсув ДП, зліва від коми дописана 1; |
1,1 1 0 1 0 0 1 1 знак добутку |
зсув ДП (b-1 = 0), справа від коми дописана 1. Отриманий результат у доповнювальному коді. |
Результат: (А * В)пр = ()доп + 1 = 1, + 0,00000001 = 1,001011012 = - 45/25610.
Якщо множник В < 0, то у доповняльному коді він буде таким: 1,
де .
У цьому випадку – множення будь-якого числа А на від'ємний множник – результат буде більшим від правильного на величину А. Для отримання правильного значення добутку необхідно провести коригування, яке можна виконати на останьому кроці множення – при множенні на знаковий розряд множника, віднімаючи від проміжного добутку множене А.
Наступні приклади проілюструють процедуру множення додатного або від'ємного множеного на від'ємний множник.
Приклад 3 А = + 9/1610; Aдоп = Апр = 0,10012; (- A)доп = + 0,0001 = 1,01112;
В = - 5/1610; Впр = 0,01012 Вдоп = + 0,0001 = 1,10112
0,1 0 0 1 * 1,1 0 1 1 |
|
0,1 0 0 1 |
копія множеного (b-4 = 1); |
0,0 1 0 0 1 |
зсув проміжного добутку (ДП); |
+ 0,1 0 0 1 |
додавання другої копії множеного (b-3 = 1); |
0,1 1 0 0 0 1 1 |
результат додавання; |
0,0 1 1 0 1 1 |
зсув ДП; |
0,0 0 1 1 0 1 1 |
зсув ДП (b-2 = 0); |
+ 0,1 0 0 1 |
додавання третьої копії множеного (b-1 = 1); |
0,1 1 0 0 0 1 1 |
результат додавання; |
0,0 1 1 0 0 0 1 1 |
зсув ДП |
+ 0,0 1 1 1 |
корекція результату шляхом віднімання (додавання у доповняльному коді від’ємного значення) множеного (- А)доп; |
1,1 1 0 1 0 0 1 1 знак добутку |
Отриманий результат у доповнювальному коді; |
Результат: (А * В)пр = ()доп + 1 = 1, + 0,00000001 = 1,001011012 = - 45/25610.
Приклад 4 А = - 9/1610; Апр = 0,10012; Aдоп = + 0,0001 = 1,01112;
В = - 5/1610; Впр = 0,01012 Вдоп = + 0,0001 = 1,10112
1,0 1 1 1 * 1,1 0 1 1 |
|
1,0 1 1 1 |
копія множеного (b-4 = 1); |
1,1 0 1 1 1 |
зсув проміжного добутку (ДП), справа від коми дописана 1; |
+ 1,0 1 1 1 |
додавання другої копії множеного (b-3 = 1); |
1,0 0 1 0 1 |
результат додавання; |
1,1 0 0 1 0 1 |
зсув (ДП), справа від коми дописана 1; |
1,1 1 1 0 0 1 0 1 |
зсув ДП (b-2 = 0); |
+ 1,0 1 1 1 |
додавання третьої копії множеного (b-1 = 1); |
1,0 0 1 1 1 0 1 |
результат додавання; |
1,1 0 0 1 1 1 0 1 |
зсув (ДП), справа від коми дописана 1; |
+ 0,1 0 0 1 |
корекція результату шляхом віднімання (додавання у доповнювальному коді від’ємного значення) множеного (фактично – у прямому коді через друге доповнення) (-(- А))доп; |
1 0,0 0 1 0 1 1 0 1 знак добутку |
одиниця переповнення, що виникла при додаванні знакових розрядів, відкидається. Отриманий результат у доповнювальному коді; |
Результат: (А * В)пр = (А * В)доп = 0,001011012 = + 45/25610