Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра СКС
/
ЗВІТ
з лабораторної роботи № 1
з дисципліни «Організація та функціонування комп’ютерів»
на тему: «Ознайомлення з організацією навчального комп’ютера – симулятора DeComp»
Тема: «Ознайомлення з організацією навчального комп’ютера – симулятора DeComp»
Мета:
Вивчити організацію навчального комп’ютера – симулятора DeComp, призначення окремих блоків і можливості їх використання;
Засвоїти порядок уведення інформації в регістри та пам'ять симулятора навчального комп’ютера, навчитися вводити найпростішу програму.
Вивчити теоретичні основи побудови систем числення, які використовуються у комп’ютерах;
Засвоїти порядок використання двійкової системи числення.
Теоретична частина
Система числення - це сукупність прийомів та правил для зображення чисел за допомогою цифрових символів (цифр), що мають визначені кількісні значення (числовий еквівалент).
Основа (базис) d-тої натуральної позиційної системи числення - це впорядкована послідовність кінцевого набору знаків або символів, які використовуються для зображення числа у даній системі, у якій значення кожного символу залежить від його позиції (розряду) у зображенні числа.
Вага розряду p i числа у позиційній системі числення – це відношення
P i = d i / d 0 = d i
де i - номер розряду справа наліво, а d 0 це перший розряд ліворуч від коми і його номер дорівнює 0, а значення дорівнює 1.
У сучасних комп’ютерних системах найбільше застосовуються позиційні системи числення. В універсальних цифрових комп’ютерах використовуються тільки позиційні системи числення, а у спеціалізованих комп’ютерах використовуються такі системи числення (в тому числі і не позиційні), які дозволяють значно спростити апаратуру процесора, зображення чисел і операції над ними для обчислення вузького класу задач.
Двійкова система числення у комп’ютерах є основною, у якій здійснюються арифметичні і логічні перетворення інформації у пристроях комп’ютера. Вона має тільки дві цифри: 0 і 1, а всяке двійкове число зображується у вигляді комбінації нулів і одиниць. Кожний розряд числа у двійковій системі числення ліворуч від коми подається двійкою у відповідній додатний степені, а праворуч від коми – двійкою у від’ємній степені.
Вісімкова система числення має основу d = 8 i можливі значення розрядів αi = 0, 1, 2, 3, 4, 5, 6, 7. Число вісім, яке дорівнює основі системи числення, записується двома цифрами у вигляді 10.
Шістнадцяткова система числення має основу d = 16 і αi = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Переведення чисел з однієї системи числення до іншої може бути виконано двома шляхами:
Табличний, який базується на співставленні коду одної системи числення і коду іншої системи числення, що мають однакові числові еквіваленти.
Розрахунковий, але він може бути застосований тільки для однорідних позиційних систем числення.
Правило переведення цілого числа з однієї системи числення до іншої.
Число послідовно ділять на основу нової системи числення, записаної у початковій системі числення, до отримання частки, що дорівнює нулю. Число у новій системі числення записується як послідовність залишків від ділення, починаючи з останнього залишку.
Правило переведення правильного дробу з однієї системи числення до іншої.
Правильний дріб послідовно множать на основу нової системи числення, записаної в початковій системі числення. У процесі множення приймають участь тільки дробові частини проміжних добутків, тобто їх ціла частина ігнорується, але не відкидається. Правильний дріб у новій системі числення записується як послідовність цілих частин добутків, отриманих від множення, починаючи з першого. Процес переведення закінчується, коли проміжний добуток дорівнює 0 у всіх розрядах або досягнута необхідна точність, тобто отримана необхідна кількість розрядів результату після коми.
Правило переведення чисел до десяткової системи з інших систем числення.
Число записується у розгорнутій (повній) формі у своїй системі числення, але значення розрядів записуються у десятковій формі. Всі арифметичні дії виконуються у тій системі числення, до якої дане число переводиться.
Хід роботи
2. Дайте відповідь на таке контрольне питання: що таке основа системи числення?
Основа системи числення – це впорядкована послідовність знаків або символів, які використовуються для зображення числа у даній системі, у якій значення кожного символу залежить від його позиції (розряду) у зображенні числа.
Запустити програму “Симулятор навчальної ЕОМ DeComp” (файл DeComp.exe) і включити живлення на панелі навчального комп’ютера.
За допомогою набірного поля і кнопок “Занесення з набірного поля”, записати до регістрів процесора такі значення двійкових кодів: до РА – 0101 0101 0101,
до РД – 0011 0011 0011 0011,
до А – 0000 1111 0000 1111,
до РІ – 0000 0000 1111 1111,
до ЛАІ – 1010 1010 1010.
Вміння виконувати вказані дії продемонструвати викладачу.
Я запустив програму “Симулятор навчальної ЕОМ DeComp” і включив живлення на панелі навчального комп’ютера (в правому нижньому куті загорівся червоний індикатор).
За допомогою набірного поля, яке знаходиться на пульті управління, я набрав двійковий код 0101 0101 0101 (для запису цифри 1 натискаю на прапорець потрібного розряду в набірному полі), натиснув кнопку РА (це значить, що цей код визначатиме адресу комірки) і в полі «операція з пам’яттю» натиснув кнопку «запис». Після цього в регістр Адреси пам’яті був занесений набраний код(відповідні побітові індикатори загорілися жовтим кольором). Після цього, знову за допомогою набірного поля я набрав двійковий код 0011 0011 0011 0011 і натиснув на кнопки РД і «запис» , після цього ця операція була записана в Регістр даних. Далі аналогічно:
До А (акумулятор) я записав код 0000 1111 0000 1111;
До РІ (Регістр інструкцій) – код 0000 0000 1111 1111;
До ЛАІ (Лічильник адреси інструкцій) – код 1010 1010 1010.
За допомогою набірного поля і кнопок “Операція з пам’яттю” записати до 5-ти сусідніх комірок пам’яті з адресами 20, 21, 22, 23 та 24 числа 16, 17, 18, 19 та 20. Попередньо всі десяткові числа перевести до двійкової системи числення і результати записати у робочий зошит для подання у звіті. Вміння виконувати вказані дії продемонструвати викладачу.
16 : 2 = 8 (залишок 0) 17 : 2 = 8 (залишок 1)
8 : 2 = 4 (залишок 0) 8 : 2 = 4 (залишок 0)
4 : 2 = 2 (залишок 0) 4 : 2 = 2 (залишок 0)
2 : 2 = 1 (залишок 0) 2 : 2 = 1 (залишок 0)
1610 = 1 00002 1710 = 1 00012
18 : 2 = 9 (залишок 0) 19 : 2 = 9 (залишок 1)
9 : 2 = 4 (залишок 1) 9 : 2 = 4 (залишок 1)
4 : 2 = 2 (залишок 0) 4 : 2 = 2 (залишок 0)
2 : 2 = 1 (залишок 0) 2 : 2 = 1 (залишок 0)
1810 = 1 00102 1910 = 1 00112
20 : 2 = 10 (залишок 0) 21 : 2 = 10 (залишок 1)
10 : 2 = 5 (залишок 0) 10 : 2 = 5 (залишок 0)
5 : 2 = 2 (залишок 1) 5 : 2 = 2 (залишок 1)
2 : 2 = 1 (залишок 0) 2 : 2 = 1 (залишок 0)
2010 = 1 01002 2110 = 1 01012
22 : 2 = 11 (залишок 0) 23 : 2 = 11 (залишок 1)
11 : 2 = 5 (залишок 1) 11 : 2 = 5 (залишок 1)
5 : 2 = 2 (залишок 1) 5 : 2 = 2 (залишок 1)
2 : 2 = 1 (залишок 0) 2 : 2 = 1 (залишок 0)
2210 = 1 01102 2310 = 1 01112
24 : 2 = 12 (залишок 0)
12 : 2 = 6 (залишок 0)
6 : 2 = 3 (залишок 0)
3 : 2 = 1 (залишок 1)
2410 = 1 10002
За допомогою набірного поля ввів двійковий код 20 комірки (0000 0001 01002), затиснув РА та кнопку “Запис”, очистив набірне поле клавішею і ввів двійковий код числа 16 (0000 0000 0001 00002), натиснув РД і кнопку “Запис”. Отже після такої операції число 16 у двійковому коді буде занесене до 20 комірки. Натиснув клавішу +1 (таким чином виділив наступну за порядком адресу комірки пам’яті), очистив набірне поле, ввів двійковий код числа 17 (0000 0000 0001 00012) , натиснув клавішу РД, і клавішу “Запис”. Таким способом записав до 5-ти сусідніх комірок пам’яті з адресами 20, 21, 22, 23 та 24 числа 16, 17, 18, 19 та 20 відповідно.
5. Записати у пам’ять описану нижче програму, яка додаватиме числа, що знаходяться у 10-й та 11-й комірках пам’яті, а результат запише до 12-ї комірки. Програму розмістити у оперативній пам’яті, починаючи з комірки за адресою 0 (нуль). Попередньо у 10-ту та 11-ту комірки занести числа 25 і 34 відповідно.
Мнемонічний
код інструкції
Дія, яку виконує інструкція
LOAD 10
завантажити (прочитати) значення числа з 10-ї комірки пам’яті до
акумулятора;
ADD 11
додати до числа в акумуляторі значення числа з 11-ї комірки пам’яті і
результат зберегти в акумуляторі;
STORE 12
зберегти (записати) значення числа з акумулятора до 12-ї комірки пам’яті;
HALT
зупинити роботу процесора.
У двійковому поданні дана програма матиме наступний вигляд:
0000 0000 0000 1010 – двійковий код 1-ої інструкції
0010 0000 0000 1011 - - “ - 2-ої інструкції
0001 0000 0000 1100 - - “ - 3-ої інструкції
0111 1100 0000 0000 - - “ - 4-ої інструкції
Відповідно, двійковий код першої інструкції необхідно занести до комірки з адресою 0 (0000 0000 0000), другу – у комірку з адресою 1 (0000 0000 0001), третю – у комірку з адресою 2 (0000 0000 0010), а четверту – у комірку з адресою 3 (0000 0000 0011).
Після того, як програма розміщена у пам’яті навчального комп’ютера і у 10-ту (код адреси у двійковій формі - 0000 0000 1010) та у 11-ту (код адреси - 0000 0000 1011) комірки будуть занесені задані числа, необхідно у Лічильнику Адреси Інструкції за допомогою набірного поля встановити адресу першої інструкції, тобто код адреси - 0000 0000 0000, тобто показати процесору звідки починати виконання програми.
6. Виконати програму у автоматичному режимі і перевірити результат у 12-й комірці, прочитавши значення 12-ї комірки пам’яті.
Натиснув ПУСК, після чого програма виконалася. За допомогою набірного поля вводжу двійковий код 12 комірки, натискаю РА і кнопку «Читання». Після чого, в Регістрі Даних знаходжу число 11 10112, що, виконавши перевірку, і дорівнює 5910.
7. Обнулити 12-ту комірку, знову встановити у ЛАІ адресу першої інструкції – адресу 0 і дослідити цю програму, виконавши її у покроковому режимі. Після виконання кожної інструкції записати у таблицю вміст усіх регістрів процесора. Проаналізувати процес змін у регістрах процесора на кожному кроці виконання програми.
Я дослідив цю програму, виконавши її у покроковому режимі. Після виконання кожної інструкції записав у подану нижче таблицю вміст усіх регістрів процесора:
крок
РА
РД
А
РІ
ЛАІ
РО
1-й
0000 0000 1010
0000 0000 0001 1001
0000 0000 0001 1001
0000 0000 0000 1010
0000 0000 0001
000
2-й
0000 0000 1011
0000 0000 0010 0010
0000 0000 0011 1011
0010 0000 0000 1011
0000 0000 0010
000
3-й
0000 0000 1100
0000 0000 0011 1011
0000 0000 0011 1011
0001 0000 0000 1100
0000 0000 0011
000
4-й
0000 0000 0011
0111 1100 0000 0000
0000 0000 0011 1011
0111 1100 0000 0000
0000 0000 0011
000
Аналіз:
Зміни в регістрі РА:
0000 0000 1010 – код 10 комірки; 0000 0000 1011 – код 11 комірки; 0000 0000 1100 – код 12 комірки; 0000 0000 0011 – код 4 комірки. В РА записані саме ці адреси і в саме такому порядку так, як згідно інструкції потрібно виконувати дії з числами, які знаходяться в цих комірках. Остання комірка (4 комірка) зберігає інструкцію завершення програми.
Зміни в регістрі РД:
0000 0000 0001 1001 – двійковий код числа 25; 0000 0000 0010 0010 – двійковий код числа 34;
0000 0000 0011 1011 – двійковий код числа 59; 0111 1100 0000 0000 – код інструкції HALT. Згідно з інструкціями, до першої та другої комірки завантажили числа 25 і 34. До дванадцятої комірки записаний результат суми – число 59 у двійковому коді.
Зміни в регістрі А:
0000 0000 0001 1001 - число 25, яке записували до акумулятора, щоб здійснити над ним операцію; 0000 0000 0011 1011 - результат додавання, число 51; 0000 0000 0011 1011 - змін не відбулось, оскільки не було задано нових інструкцій акумулятору; 0000 0000 0011 1011 - змін не відбулось, оскільки не було задано нових інструкцій акумулятору.
Зміни в регістрі РІ:
0000 0000 0000 1010 - код інструкції LOAD 10; 0010 0000 0000 1011 - код інструкції ADD 11;
0001 0000 0000 1100 - код інструкції STORE 12; 0111 1100 0000 0000 - код інструкції HALT.
В цьому регістрі послідовно змінюються інструкції в такому порядку, в якому вони були занесені перед запуском програми.
Зміни в регістрі ЛАІ:
0000 0000 0001 – відслідковується адреса 2 інструкції;
0000 0000 0010 – відслідковується адреса 3 інструкції;
0000 0000 0011 – відслідковується адреса 4 інструкції;
0000 0000 0011 - змін не відбулось.
Зміни в регістрі РО:
000 – код, який лишився без змін, означає, що в процесі виконання програми результат кожної операції більше нуля і в той же час не відбулося переповнення розрядної сітки.
Висновок: я ознайомився з організацією навчального комп’ютера – симулятора DeComp, навчився виконувати найпростіші операції, набирати двійкові коди та записувати їх в регістри, запускати програму в автоматичному та покроковому режимі, зчитувати результати роботи.