- •Міністерство освіти і науки україни
- •"Організація та функціонування комп'ютерів"
- •І. Теоретичні відомості
- •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.1.1. Ділення з відновленням залишку
Найбільш очевидний алгоритм носить назву алгоритму ділення з нерухомим дільником і відновленням залишку. Зовні він дуже подібний на загальноприйнятий спосіб ділення у стовпчик. Даний алгоритм може бути описаний таким чином:
1. Початкове значення часткового залишку (ЧЗ) приймається таким, що дорівнює
старшим розрядам діленого;
2. Частковий залишок подвоюється шляхом зсуву на один розряд вліво. При цьому
у його молодший розряд, що звільняється при зсуві, заноситься наступна цифра
частки;
3. Із зсунутого ЧЗ віднімається дільник і аналізується знак результату віднімання;
4. Наступна цифра модуля частки дорівнює 1, коли результат віднімання додатний, і
дорівнює 0, якщо він від’ємний. В останньому випадку значення залишку
відновлюється до того значення, яке було до віднімання.
5. Пункти 2 – 4 послідовно виконуються для отримання усіх цифр модуля частки.
Крім того, доцільно операцію віднімання при діленні чисел замінити додаванням дільника у доповняльному коді. Тоді значення переносу від додавання буде утворювати значення відповідного розряду частки.
Продемонструємо це на числах 20410 : 1210, 110011002 : 11002, але спочатку дільник (11002) подамо у доповняльному коді, що дозволить обмежитися додаванням у всіх випадках, коли потрібно виконувати додавання або віднімання: 1100пр = 1.0100доп. Частка формується у деякому регістрі С, незаповнені розряди якого позначатимемо через Х.
Починаємо віднімати дільник від діленого (фактично – додавати доповняльний код дільника). Якщо залишок виходить додатний, то у розряд частки записується 1, інакше - 0.
0. 11001100 ділене 20410
+ 1. 01000000 дільник 1210
10. 00001100 перший залишок
Оскільки залишок вийшов додатний і біт переносу = 1: С = 1ХХХХ. Далі зсувається перший залишок на один розряд вліво і від нього віднімається дільник:
0. 00011000
+ 1. 01000000
1. 01011000 другий залишок
Залишок від’ємний, біту переносу немає, тому у наступний розряд частки записується 0, С = 10ХХХ. Крім того, необхідно відновити залишок, тобто біти дільника повернути назад першому залишку, шляхом додавання дільника (у прямому коді) і другого залишку:
1. 01011000
+ 0. 11000000
0. 00011000 зміщений перший залишок.
Далі ще раз зміщується вже один раз зміщений перший залишок на один розряд вліво і віднімається від нього дільник:
0. 00110000
+ 1. 01000000
1. 01110000 третій залишок
Третій залишок від’ємний, значить наступний, третій розряд частки дорівнює 0, С = 100ХХ. Тому знову відновлюємо залишок - повертаємо дільник третьому залишку,
1. 01110000
+ 0. 11000000
0. 00110000 двічі зміщений перший залишок
Зміщуємо двічі зміщений перший залишок на один розряд вліво і віднімаємо дільник:
0. 01100000
+1. 01000000
1. 10100000 четвертий залишок
Четвертий залишок знову від’ємний, переносу немає, тому С = 1000Х. Додаємо дільник до четвертого залишку, результат зсуваємо на один розряд вліво, а потім знову віднімаємо дільник:
0. 1100000 перший залишок після четвертого зміщення
+ 1. 0100000
0. 0000000 п'ятий залишок
Залишок додатний, значить С = 10001 = 1710. Ділене вичерпалося - це і є відповідь.
Наведемо ще один приклад у іншій формі запису.
1 1 0 0 1 0 0 | 1 0 1 0
Доповнювальний код дільника + 0 1 1 0 | 1 0 1 0
Є перенос 1 ← 0 0 1 0
0 1 0 1
Доповнювальний код дільника + 0 1 1 0
Переносу немає 0 ← 1 0 1 1
+ 1 0 1 0 Повернення (відновлення) залишку
0 1 0 1
1 0 1 0
+ 0 1 1 0
1 ← 0 0 0 0
0 0 0 0
+ 0 1 1 0
0 ← 0 1 1 0
Наступна перевірка покаже, що процесс ділення у нас зійшовся до нуля.
Отже, операція ділення двійкових чисел при здійсненні його алгоритмом з відновленням залишку зводиться до операцій зсуву вліво залишку та частки і додавання. Також видно, що скільки буде отримано нульових значень розрядів частки, то стільки ж буде зроблено додаткових операцій відновлення залишків, на виконання яких витрачається зайвий час. У цьому полягає недолік розглянутого алгоритму.