Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Звіт
з лабораторної роботи № 1
з дисципліни: “Організація та функціонування комп’ютерів”
на тему: “Ознайомлення з організацією навчального комп’ютера - симулятора DeComp”
Мета:
Вивчити організацію навчального комп’ютера – симулятора DeComp, призначення окремих блоків і можливості їх використання;
Засвоїти порядок уведення інформації в регістри та пам’ять симулятора навчального комп’ютера, навчитися вводити і запускати найпростішу програму.
Вивчити теоретичні основи побудови систем числення, які використовуються у комп’ютерах;
Засвоїти порядок використання двійкової системи числення.
Теоретична частина
Система числення - це сукупність прийомів та правил для зображення чисел за допомогою цифрових символів (цифр), що мають визначені кількісні значення (числовий еквівалент).
У загальному випадку, в довільній системі числення, запис числа називається кодом і у скороченому вигляді може бути відображений таким чином:
A= anan-1...a2a1a0
Окрему позицію запису числа називають розрядом, а номер позиції n – номером розряду. Кількість розрядів запису числа називається розрядністю числа.
Позиційна система числення - це така система, в якій значення символу (числовий еквівалент) залежить від його положення в записі числа.
У сучасних комп’ютерних системах найбільше застосовуються позиційні системи числення. В універсальних цифрових комп’ютерах використовуються тільки позиційні системи числення, а у спеціалізованих комп’ютерах використовуються такі системи числення (в тому числі і не позиційні), які дозволяють значно спростити апаратуру процесора, зображення чисел і операції над ними для обчислення вузького класу задач.
З точки зору технічної реалізації найліпшою є система з основою 2 або двійкова, тому що двохпозиційні елементи різної фізичної природи легко реалізуються. Крім того, у процесах з двома стійкими станами різниця між цими станами має якісний, а не кількісний характер, що забезпечує надійну реалізацію двійкових цифр. Таким чином, простота арифметичних і логічних дій, мінімум обладнання, що використовується для подання чисел та найбільш зручні умови реалізації визначили застосування двійкових систем числення практично в усіх відомих комп’ютерах і таких, що проектуються. Двійкова система числення у комп’ютерах є основною, у якій здійснюються арифметичні і логічні перетворення інформації у пристроях комп’ютера. Вона має тільки дві цифри: 0 і 1, а всяке двійкове число зображається у вигляді комбінації нулів і одиниць. Кожний розряд числа у двійковій системі числення ліворуч від коми подається двійкою у відповідній додатний степені, а праворуч від коми – двійкою у від’ємній степені (табл. 1).
Таблиця 1
Номер розряду
4
3
2
1
0
-1
-2
-3
-4
Двійкова степінь
24
23
22
21
20
2-1
2-2
2-3
2-3
Десяткове значеня
16
8
4
2
1(,)
0,5
0,25
0,125
0,0625
Правило переведення цілого числа з однієї системи числення до іншої. Число послідовно ділять на основу нової системи числення, записаної у початковій системі числення, до отримання частки, що дорівнює нулю. Число у новій системі числення записується як послідовність залишків від ділення, починаючи з останнього залишку.
Операцію ділення виконують у початковій системі числення, тому її зручно використовувати при переведенні десяткових чисел до інших систем числення.
Приклад 1. Перевести число 2510 у двійкову систему числення.
25 : 2 = 12 (залишок = 1)
12 : 2 = 6 (залишок = 0)
6 : 2 = 3 (залишок = 0)
3 : 2 = 1 (залишок = 1)
1 : 2 = 0 (залишок = 1)
Результат переведення буде: 2510 = 110012.
Хід роботи
Вивчити теоретичні відомості до лабораторної роботи № 1.
Дайте відповіді на контрольне питання:
Правило переведення з однієї системи числення до іншої цілих чисел;
Число послідовно ділять на основу нової системи числення, записаної у початковій системі числення, до отримання частки, що дорівнює нулю. Число у новій системі числення записується як послідовність залишків від ділення, починаючи з останнього залишку.
Операцію ділення виконують у початковій системі числення, тому її зручно використовувати при переведенні десяткових чисел до інших систем числення.
Запустити програму “Симулятор навчальної ЕОМ DeComp” (файл DeComp.exe) і включити живлення на панелі навчального комп’ютера.
За допомогою набірного поля і кнопок “Занесення з набірного поля”, записати до регістрів процесора такі значення двійкових кодів:
до РА – 0101 0101 0101,
до РД – 0011 0011 0011 0011,
до А – 0000 1111 0000 1111,
до РІ – 0000 0000 1111 1111,
до ЛАІ – 1010 1010 1010.
Ми запустили программу DeComp, та включили живлення на панелі навчального комп’ютера, шляхом натискання на кнопку «живлення». За допомогою набірного поля і кнопок “Занесення з набірного поля” записуємо до регістрів процесора значення двійкових чисел, поданих вище. В набірному полі натискаючи на перемикачі (1 – натиснутий, 0 – не натиснутий), виставляємо двійковий код «РА» (0000 0101 0101 0101), та натискаємо кнопку «РА», що знаходиться в полі “Занесення з набірного поля”. І так само проводимо з іншими регістрами «РД» (двійковий код 0011 0011 0011 0011), «А» (двійковий код 0000 1111 0000 1111), «РІ» (двійковий код 0000 0000 1111 1111), «ЛАІ» (двійковий код 0000 1010 1010 1010).
За допомогою набірного поля і кнопок “Операція з пам’яттю” записати до 5-ти сусідніх комірок пам’яті з адресами 20, 21, 22, 23 та 24 числа 16, 17, 18, 19 та 20. Попередньо всі десяткові числа перевести до двійкової системи числення і результати записати у робочий зошит для подання у звіті.
Перед виконанням наступного завдання потрібно перевести числа «20, 21, 22, 23, 24» та «16, 17, 18, 19, 20» до двійкової системи числення:
20/2=10 (залишок 0) 2010=101002
10/2=5 (залишок 0)
5/2=2 (залишок 1)
2/2=1 (залишок 0)
1/2=0 (залишок 1)
21/2=10 (залишок 1) 2110=101012
10/2=5 (залишок 0)
5/2=2 (залишок 1)
2/2=1 (залишок 0)
1/2=0 (залишок 1)
22/2=11 (залишок 0) 2210=101102
11/2=5 (залишок 1)
5/2=2 (залишок 1)
2/2=1 (залишок 0)
1/2=0 (залишок 1)
23/2=11 (залишок 1) 2310=101112
11/2=5 (залишок 1)
5/2=2 (залишок 1)
2/2=1 (залишок 0)
1/2=0 (залишок 1)
24/2=12 (залишок 0) 2410=110002
12/2=6 (залишок 0)
6/2=3 (залишок 0)
3/2=1 (залишок 1)
1/2=0 (залишок 1)
16/2=8 (залишок 0) 1610=100002
8/2=4 (залишок 0)
4/2=2 (залишок 0)
2/2=1 (залишок 0)
1/2=0 (залишок 1)
17/2=8 (залишок 1) 1710=100012
8/2=4 (залишок 0)
4/2=2 (залишок 0)
2/2=1 (залишок 0)
1/2=0 (залишок 1)
18/2=9 (залишок 0) 1810=100102
9/2=4 (залишок 1)
4/2=2 (залишок 0)
2/2=1 (залишок 0)
1/2=0 (залишок 1)
19/2=9 (залишок 1) 1910=100112
9/2=4 (залишок 1)
4/2=2 (залишок 0)
2/2=1 (залишок 0)
1/2=0 (залишок 1)
20/2=10 (залишок 0) 2010=101002
10/2=5 (залишок 0)
5/2=2 (залишок 1)
2/2=1 (залишок 0)
1/2=0 (залишок 1)
Тепер за допомогою набірного поля виставляємо перемикачі відповідних адрес та даних, що входять до цих адрес. В набірному полі натискаючи на перемикачі (1 – натиснутий, 0 – не натиснутий) виставляємо двійковий код адреси - 20, нажимаємо кнопку «РА», скидаємо перемикачі набірного поля. Натискаючи на перемикачі виставляємо двійковий код числа - 16, нажимаємо «РД» і нажимаємо кнопку «Запис» в полі «Операції з пам’яттю». Тепер у нас в комірці пам’яті 20, лежить число 16. Так проводимо дії з усіма наступними адресами та числами. Комірці з адресою 21 – відповідає число 17; адресі 22 – число 18; адресі 23 – число 19; адресі 24 – число 20.
Записати у пам’ять описану нижче програму, яка додаватиме числа, що знаходяться у 10-й та 11-й комірках пам’яті, а результат запише до 12-ї комірки. Програму розмістити у оперативній пам’яті, починаючи з комірки за адресою 0 (нуль). Попередньо у 10-ту та 11-ту комірки занести числа відповідно до свого варіанту: варіант №23 (число 1 – 29, число 2 – 22 ).
Відповідна програма у мнемонічних кодах буде мати такий вигляд:
Мнемонічний
код інструкції
Дія, яку виконує інструкція
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, тобто показати процесору звідки починати виконання програми.
За допомогою набірного поля виставляємо перемикачі відповідної комірки з адресою 0, нажимаємо кнопку «РА», скидаємо перемикачі набірного поля. В комірку з адресою 0 вводимо двійковий код 1-ої інструкції (0000 0000 0000 1010), шляхом виставлення перемикачів набірного поля відповідно до коду, нажимаємо кнопку «РА». Так само проводимо з адресою 1, 2, 3.
29/2=14 (залишок 1) 2910=111012
14/2=7 (залишок 0)
7/2=3 (залишок 1)
3/2=1 (залишок 1)
1/2=0 (залишок 1)
22/2=11 (залишок 0) 2210=101102
11/2=5 (залишок 1)
5/2=2 (залишок 1)
2/2=1 (залишок 0)
1/2=0 (залишок 1)
Після того як ми ввели коди інструкцій в комірки адрес, вводимо до комірки 10 – перше число за своїм варіантом у вигляді двійкового коду, поданого вище. Та вводимо до комірки 11 – друге число за своїм варіантом у вигляді двійкового коду, поданого також вище.
Після того, як програма розміщена у пам’яті навчального комп’ютера і у комірки будуть занесені задані числа, у Лічильнику Адреси Інструкції за допомогою набірного поля встановлюємо адресу першої інструкції, тобто код адреси - 0000 0000 0000, аби показати процесору звідки починати виконання програми.
Виконати програму у автоматичному режимі і перевірити результат у 12-й комірці, прочитавши значення 12-ї комірки пам’яті.
Після виконання прорами, перевіряємо резкльтат у 12-й комірці. Тобто за допомогою набірного поля, виставляємо адресу 12 комірки, нажимаємо «РА». А для того щоб побачити дані, які в ній знаходяться нажимаємо кнопку «Читати». Отримані дані ми побачимо у вигляді двійкового коду в полі «Регістр Даних пам’яті»
Онулити 12-ту комірку, знову встановити у ЛАІ адресу першої інструкції – адресу 0 і дослідити цю програму, виконавши її у покроковому режимі. Після виконання кожної інструкції записати у подану нижче таблицю вміст усіх регістрів процесора. Проаналізувати процес змін у регістрах процесора на кожному кроці виконання програми.
Онуляємо 12-ту комірку, скидуємо набірне поле, за допомогою кнопки «Скидування набірно поля», і нажимаємо «РД», тепер комірка 12 – пуста. Нажимаємо кнопку «ЛАІ», так ми задали початок програми. І в полі «Режим роботи» нажимаємо кнопку «Покроковий». І нажимаємо «Пуск». Отримали результати 1-ї інструкції, записали вміст усіх регістрів у таблицю. Так повторюємо 4 рази.
Крок
РА
РД
А
РІ
ЛАІ
РО
1
0000 0000 0000 1010
0000 0000 0001 1101
0000 0000 0001 1101
0000 0000 0000 1010
0000 0000 0000 0001
000
2
0000 0000 0000 1011
0000 0000 0001 0110
0000 0000 0011 0011
0010 0000 0000 1011
0000 0000 0000 0010
000
3
0000 0000 0000 1100
0000 0000 0011 0011
0000 0000 0011 0011
0001 0000 0000 1100
0000 0000 0000 0011
000
4
0000 0000 0000 0011
0111 1100 0000 0000
0000 0000 0011 0011
0111 1100 0000 0000
0000 0000 0000 0011
000
Розглянемо зміни в регістрах, під час виконання програми додавання двох чисел:
«РА»: 1-й крок – програма визиває комірку №10 (значення 0000 0000 0000 1010), наступний крок – переходить до комірки №11 (значення 0000 0000 0000 1011), 3-й крок – перехід до комірки №12 (значення 0000 0000 0000 1100), 4-й крок - визов комірки №3 (значення 0000 0000 0000 0011).
«РД»: 1-й крок – програма отримує дані з комірки №10, тобто число 29 (значення 0000 0000 0001 1101), 2-й крок – з комірки №11 отримуємо число 22 (значення 0000 0000 0001 0110), 3-й крок – отримуємо з комірки №12 суму чисел комірок №10 і №11, сума = 51 (значення 0000 0000 0011 0011), 4-й крок – отримуємо дані з комірки №3, число 31744 (значення 0111 1100 0000 0000).
«А»: 1-й крок – значення регістру змінюється на 29, 2-й крок – значення міняється на 51, 3-й крок – значення регістру не змінюється, 4-й крок – значення регістру не змінюється.
«РІ»: 1-й крок – виконується перша інструкція LOAD 10 (завантажити значення числа з 10-ї комірки пам’яті до акумулятора), 2-й крок – симулятором виконується наступна (друга) інструкція ADD 11 (додати до числа в акумуляторі значення числа з 11-ї комірки пам’яті і
результат зберегти в акумуляторі), наступний 3-й крок – симулятором проходить виконання третьої інструкції STORE 12 (зберегти значення числа з акумулятора до 12-ї комірки пам’яті), 4-й крок – виконується остання інструкція HALT (зупинити роботу процесора).
«ЛАІ»: в ЛАІ на всіх кроках записана адреса інструкції.
«РО»: на всіх кроках в РО не відбувається змін, отже результат операції не <=0 і розрядна сітка акумулятора не переповнена.
Висновок: у даній лабораторній роботі я вивчив організацію навчального комп’ютера – симулятора DeComp, призначення окремих блоків і можливості їх використання; засвоїв порядок уведення інформації в регістри та пам’ять симулятора навчального комп’ютера, навчився вводити і запускати найпростішу програму, вивчив теоретичні основи побудови систем числення, які використовуються у комп’ютерах, засвоїв порядок використання двійкової системи числення.