Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Звіт
з лабораторної роботи №1
з дисципліни: “Організація та функціонування комп’ютерів”
на тему:
“Ознайомлення з організацією навчального комп’ютера - симулятора DeComp”
Львів
2011
Лабораторна робота № 1
Тема: “Ознайомлення з організацією навчального комп’ютера - симулятора DeComp”
Мета:
Вивчити організацію навчального комп’ютера – симулятора DeComp, призначення окремих блоків і можливості їх використання;
Засвоїти порядок уведення інформації в регістри та пам’ять симулятора навчального комп’ютера, навчитися вводити і запускати найпростішу програму.
Вивчити теоретичні основи побудови систем числення, які використовуються у комп’ютерах;
Засвоїти порядок використання двійкової системи числення.
Теоретичні відомості:
Загальні поняття про системи числення
Система числення - це сукупність прийомів та правил для зображення чисел за допомогою цифрових символів (цифр), що мають визначені кількісні значення (числовий еквівалент).
У загальному випадку, в довільній системі числення, запис числа називається кодом і у скороченому вигляді може бути відображений таким чином:
A= anan-1...a2a1a0
Окрему позицію запису числа називають розрядом, а номер позиції n – номером розряду. Кількість розрядів запису числа називається розрядністю числа.
Позиційна система числення - це така система, в якій значення символу (числовий еквівалент) залежить від його положення в записі числа. Будь-яка позиційна система числення характеризується основою.
Основа (або базис) d натуральної позиційної системи числення - це впорядкована послідовність кінцевого набору знаків або символів, які використовуються для зображення числа у данній систем, у якій значення кожного символу залежить від його позиції (розряду) у зображенні числа.
Однорідна позиційна система числення - це така позиційна система числення, в якій є одна основа d, а вага i-го розряду дорівнює p i.
Вага розряду p i числа у позиційній системі числення – це відношення
P i = d i / d 0 = d i
де i - номер розряду справа наліво, а d 0 це перший розряд ліворуч від коми і його номер дорівнює 0, а значення дорівнює 1.
Кожне число у позиційній системі числення з основою d може бути записане у вигляді дискретної суми степенів основи системи з відповідними коефіцієнтами. Таку форму ще називають розгорнутою або повною:
(1)
де: Ad – довільне число у системі числення з основою d;
– коефіцієнти ряду або цифри системи числення;
i = (n, n-1, n-2, …, 1, 0, -1, …, -m+1, -m) – номер розряду цілої (n) або дробової (-m) частини числа.
У сучасних комп’ютерних системах найбільше застосовуються позиційні системи числення. В універсальних цифрових комп’ютерах використовуються тільки позиційні системи числення, а у спеціалізованих комп’ютерах використовуються такі системи числення (в тому числі і не позиційні), які дозволяють значно спростити апаратуру процесора, зображення чисел і операції над ними для обчислення вузького класу задач.
Позиційні системи числення, які застосовуться у комп’ютерах
Двійкова система числення
З точки зору технічної реалізації найкращою є двійкова система числення, тому що двохпозиційні елементи різної фізичної природи легко реалізуються. Крім того, у процесах з двома стійкими станами різниця між цими станами має якісний, а не кількісний характер, що забезпечує надійну реалізацію двійкових цифр. Двійкова система числення у комп’ютерах є основною, у якій здійснюються арифметичні і логічні перетворення інформації у пристроях комп’ютера. Вона має тільки дві цифри: 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. Для запису чисел у системі числення з основою, більше ніж 10, арабських цифр виявляється недостатньо і доводиться додатково вводити символи, що однозначно подають цифри від 10 до 15. У даній системі числення застосовують великі латинські символи для позначення цифр від 10 до 15.
Переведення чисел з однієї позиційної системи числення до іншої
Переведення цілих чисел
Правило переведення цілого числа з однієї системи числення до іншої:
Число послідовно ділять на основу нової системи числення, записаної у початковій системі числення, до отримання частки, що дорівнює нулю. Число у новій системі числення записується як послідовність залишків від ділення, починаючи з останнього залишку. Операцію ділення виконують у початковій системі числення, тому її зручно використовувати при переведенні десяткових чисел до інших систем числення.
Переведення правильного дробу
Правило переведення правильного дробу з однієї системи числення до іншої:
Правильний дріб послідовно множать на основу нової системи числення, записаної в початковій системі числення. У процесі множення приймають участь тільки дробові частини проміжних добутків, тобто їх ціла частина ігнорується, але не відкидається. Операцію множення виконують в початковій системі числення, тому це правило переважно використовують при переведенні десяткових дробів до інших систем числення. Правильний дріб у новій системі числення записується як послідовність цілих частин добутків, отриманих від множення, починаючи з першого.
Процес переведення закінчується, коли проміжний добуток дорівнює 0 у всіх розрядах або досягнута необхідна точність, тобто отримана необхідна кількість розрядів результату після коми.
Особливості переведення вісімкових і шістнадцяткових чисел до двійкової системи числення і навпаки
Будь-яке однорозрядне вісімкове число можна записати у вигляді трьохрозрядного двійкового;
Будь-яке трьохрозрядне двійкове число можна записати у вигляді однорозрядного вісімкового.
Такий самий висновок можна зробити і для шістнадцяткових чисел від 016 до 1516, але у двійкових числах треба розглядати чотири розряди. Група з трьох двійкових розрядів називається тріада, а з чотирьох двійкових розрядів – тетрада. На підставі цих положень можна стверджувати, що:
Для переведення вісімкових чисел до двійкової системи числення необхідно кожну вісімкову цифру замінити еквівалентною їй двійковою тріадою (для шістнадцяткових чисел – тетрадою).
Для переведення двійкових чисел до вісімкової системи числення необхідно двійкове число розбити на тріади праворуч і ліворуч від коми (для шістнадцяткових чисел – на тетради). Якщо останні ліворуч і праворуч тріади (тетради) будуть неповні, їх потрібно доповнити нулями. Потім кожну двійкову тріаду (тетраду) замінити одною еквівалентною їй вісімковою (шістнадцятковою) цифрою.
Переведення чисел з будь-якої позиційної системи числення до десяткової системи
При необхідності переведення чисел до десяткової системи з інших систем числення, у загальному випадку використовується формула повного запису числа (1). При використанні цього способу всі арифметичні дії виконуються у тій системі числення, до якої дане число переводиться. Число записується у розгорнутій (повній) формі у своїй системі числення, але значення розрядів записуються у десятковій формі. Виконавши всі операції за правилами десяткової арифметики ми отримаємо результат у десятковій формі.
Порядок виконання лабораторної роботи № 1:
Вивчити теоретичні відомості до лабораторної роботи № 1.
Дайте відповіді на такі контрольні питання:
Які особливості двійкової системи числення?
Двійкова система числення у комп”ютерах є основною, у якій здійснюються арифметичні і логічні перетворення інформації у пристрях компю”тера.Вона має тільки дві цифри: 0 і 1, а всяке двійкове число зображається у вигляді комбінації нулів і одиниць. Кожний розряд числа у двійковій системі числення ліворуч від коми подається двійковою у відповідній додатний степінь, а праворуч від коми-двійковою у від”ємній степені
Запустити програму “Симулятор навчальної ЕОМ DeComp” (файл DeComp.exe) і включити живлення на панелі навчального комп’ютера.
За допомогою набірного поля і кнопок “Занесення з набірного поля”, записати до регістрів процесора такі значення двійкових кодів:
до РА
0101 0101 0101
до РД
0011 0011 0011 0011
до А
0000 1111 0000 1111
до РІ
0000 0000 1111 1111
до ЛАІ
1010 1010 1010
Вміння виконувати вказані дії продемонструвати викладачу.
Порядок виконання:
На панелі управління увімкнув живлення;
З допомогою відповідних перемикачів у набірне поле ввів число 0101 0101 0101;
Кнопкою «РА» в панелі “Занесення з набірного поля” заніс в регістр адреси пам’яті число 0101 0101 01012;
У набірне поле ввів число 0011 0011 0011 00112;
Кнопкою «РД» заніс його в регістр даних пам’яті;
У набірне поле ввів число 0000 1111 0000 11112;
Кнопкою «А» заніс його в акумулятор арифметико-логічного пристрою;
У набірне поле ввів число 0000 0000 1111 11112;
Кнопкою «РІ» ввів його в регістр інструкції пристою управління;
У набірне поле ввів число 1010 1010 10102;
Кнопкою «ЛАІ» заніс його в лічильник адреси інструкції.
За допомогою набірного поля і кнопок “Операція з пам’яттю” записати до 5-ти сусідніх комірок пам’яті з адресами 20, 21, 22, 23 та 24 числа 16, 17, 18, 19 та 20. Попередньо всі десяткові числа перевести до двійкової системи числення і результати записати у робочий зошит для подання у звіті. Вміння виконувати вказані дії продемонструвати викладачу.
Частка
Остача
Частка
Остача
Частка
Остача
Частка
Остача
16÷2=8
0
17÷2=8
1
18÷2=8
0
19÷2=8
1
8÷2=4
0
8÷2=4
0
9÷2=4
1
9÷2=4
1
4÷2=2
0
4÷2=2
0
4÷2=2
0
4÷2=2
0
2÷2=1
0
2÷2=1
0
2÷2=1
0
2÷2=1
0
1÷2=0
1
1÷2=0
1
1÷2=0
1
1÷2=0
1
1610=100002
1710=100012
1810=100102
1910=100112
Частка
Остача
Частка
Остача
Частка
Остача
Частка
Остача
20÷2=10
0
21÷2=10
1
22÷2=11
0
23÷2=11
1
10÷2=5
0
10÷2=5
0
11÷2=5
1
11÷2=5
1
5÷2=2
1
5÷2=2
1
5÷2=2
1
5÷2=2
1
2÷2=1
0
2÷2=1
0
2÷2=1
0
2÷2=1
0
1÷2=0
1
1÷2=0
1
1÷2=0
1
1÷2=0
1
2010=101002
2110=101012
2210=101102
2310=101112
Частка
Остача
24÷2=12
0
12÷2=6
0
6÷2=3
0
3÷2=1
1
1÷2=0
1
2410=110002
Порядок виконання:
Скинувши значення набірного поля, заніс нульові значення в регістр адреси пам’яті, в регістр даних пам’яті, в акумулятор арифметико-логічного пристрою, в регістр інструкції пристою управління і в лічильник адреси інструкції.
В набірне поле ввів число 101002 (2010) і заніс його в регістр адреси пам’яті.
В набірне поле ввів число 100002(1610) і заніс його в регістр даних пам’яті.
Кнопкою «Запис» записав число з регістру даних пам’яті за відповідною адресою;
На пульті управління збільшив значення адреси пам’яті на одиницю (кнопкою «+1»)
В набірне поле ввів число 100012 (1710) і заніс його в регістр пам’яті.
Кнопкою «Запис» записав число з регістру даних пам’яті за відповідною адресою;
На пульті управління збільшив значення адреси пам’яті на одиницю (кнопкою «+1»)
В набірне поле ввів число 100102 (1810) і заніс його в регістр пам’яті.
Кнопкою «Запис» записав число з регістру даних пам’яті за відповідною адресою;
На пульті управління збільшив значення адреси пам’яті на одиницю (кнопкою «+1»)
В набірне поле ввів число 101112 (1910) і заніс його в регістр пам’яті.
Кнопкою «Запис» записав число з регістру даних пам’яті за відповідною адресою;
На пульті управління збільшив значення адреси пам’яті на одиницю (кнопкою «+1»)
В набірне поле ввів число 101002 (2010) і заніс його в регістр пам’яті.
Кнопкою «Запис» записав число з регістру даних пам’яті за відповідною адресою;
Записати у пам’ять описану нижче програму, яка додаватиме числа, що знаходяться у 10-й та 11-й комірках пам’яті, а результат запише до 12-ї комірки. Програму розмістити у оперативній пам’яті, починаючи з комірки за адресою 0 (нуль). Попередньо у 10-ту та 11-ту комірки занести числа відповідно до свого варіанту:
№ за списком
Число 1
Число 2
24
34
20
Відповідна програма у мнемонічних кодах буде мати такий вигляд:
Мнемонічний
код інструкції
Дія, яку виконує інструкція
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-ої інструкції
Частка
Остача
Частка
Остача
Частка
Остача
20÷2=10
0
34÷2=17
0
10÷2=5
0
10÷2=5
0
17÷2=9
1
5÷2=2
1
5÷2=2
1
9÷2=4
1
2÷2=1
0
2÷2=1
0
4÷2=2
0
1÷2=0
1
1÷2=0
1
2÷2=1
0
1010=10102
1÷2=0 1
3410=1001102
2010=101002
Порядок виконання:
В набірне поле ввів число 10102(1010);
Заніс його в регістр адреси пам’яті;
В набірне поле ввів число 1001102(3410);
Заніс його в регістр даних пам’яті;
Кнопкою «Запис» записав число з регістру даних пам’яті за відповідною адресою;
На пульті управління збільшив значення адреси пам’яті на одиницю (кнопкою «+1»)
В набірне поле ввів число 101002(2010);
Заніс його в регістр даних пам’яті;
Кнопкою «Запис» записав число з регістру даних пам’яті за відповідною адресою;
Ввів у набірне поле число 0000 0000 0000 (02);
Записав його в регістр адреси пам’яті;
У набірне поле записав двійковий код 1-ї інструкції 0000 0000 0000 1010;
Заніс його в регістр даних пам’яті;
Кнопкою «Запис» записав число з регістру даних пам’яті за відповідною адресою;
На пульті управління збільшив значення адреси пам’яті на одиницю (кнопкою «+1»)
У набірне поле записав двійковий код 2-ї інструкції 0010 0000 0000 1011;
Заніс його в регістр даних пам’яті;
Кнопкою «Запис» записав число з регістру даних пам’яті за відповідною адресою;
На пульті управління збільшив значення адреси пам’яті на одиницю (кнопкою «+1»)
У набірне поле записав двійковий код 3-ї інструкції 0001 0000 0000 1100;
Заніс його в регістр даних пам’яті;
Кнопкою «Запис» записав число з регістру даних пам’яті за відповідною адресою;
На пульті управління збільшив значення адреси пам’яті на одиницю (кнопкою «+1»)
У набірне поле записав двійковий код 4-ї інструкції 0111 1100 0000 0000;
Заніс його в регістр даних пам’яті;
Кнопкою «Запис» записав число з регістру даних пам’яті за відповідною адресою;
Ввів у набірне поле 0000 0000 0000 (02);
Кнопкою «ЛАІ» заніс дані з набірного поля в лічильник адреси інструкції;
Виконати програму у автоматичному режимі і перевірити результат у 12-й комірці, прочитавши значення 12-ї комірки пам’яті.
Порядок виконання:
На пульті управління встановив автоматичний режим роботи;
Натиснув на кнопку «Пуск»;
Отримав наступні значення регістрів:
Регістр адреси пам’яті: 0000 0000 0011
Регістр даних пам’яті: 0111 1100 0000 0000
Акумулятор: 0000 0000 0011 0110
Регістр інструкцій: 0111 1100 0000 0000
Лічильник адреси інструкції: 0000 0000 0011
В набірне поле адресу 12-ої комірки пам’яті (11002);
Частка
Остача
12÷2=6
0
6÷2=3
0
3÷2=1
1
1÷2=0
1
1210=11002
Вніс дані в регістр адреси пам’яті;
Прочитав дані 12-ої комірки пам’яті (кнопкою «Читання» на пульті управління);
Отримав наступне значення регістру даних пам’яті: 0000 0000 0011 0110
0000 0000 0011 01102=5410
Значення акумулятора, 12-ої комірки пам’яті та необхідних обчислень збігаються, значить обчислення проведені вірно.
Онулити 12-ту комірку, знову встановити у ЛАІ адресу першої інструкції – адресу 0 і дослідити цю програму, виконавши її у покроковому режимі. Після виконання кожної інструкції записати у таблицю вміст усіх регістрів процесора.
Порядок виконання:
Скинув значення набірного поля;
Вніс дані в регістр даних 12-ої комірки пам’яті (РА: 0000 0000 1100);
Кнопкою «Запис» записав число з регістру даних пам’яті за відповідною адресою;
Вніс дані в лічильник адреси інструкції;
На пульті управління встановив покроковий режим роботи;
Розпочав виконання інструкцій і отримав наступні значення регістрів процесора:
крок
РА
РД
А
РІ
ЛАІ
РО
1
0000 0000 1010
0000 0000 0010 0010
0000 0000 0010 0010
0000 0000 0000 1010
0000 0000 0001
0000 0000 0000 0000
2
0000 0000 1011
0000 0000 0001 0100
0000 0000 0011 0110
0010 0000 0000 1011
0000 0000 0010
0000 0000 0000 0000
3
0000 0000 1100
0000 0000 0011 0110
0000 0000 0011 0110
0001 0000 0000 1100
0000 0000 0011
0000 0000 0011 1111
4
0000 0000 0011
0111 1100 0000 0000
0000 0000 0011 0110
0111 1100 0000 0000
0000 0000 0011
0000 0000 0011 1111
Зміни у регістрах процесора:
На першому кроці ЕОМ виконує інструкцію LOAD 10 (0000 0000 0000 1010):
звертається до 10-ої комірки пам’яті (РА: 0000 0000 1010);
зчитує її вмістиме (число 34; РД: 0000 0000 0010 0010);
записує його в акумулятор (А: 0000 0000 0011 0110);
На другому кроці ЕОМ виконує інструкцію ADD 11 (0010 0000 0000 1011):
зветрається до 11-ої комірки пам’яті (0000 0000 1011);
зчитує її вмістиме (число 20; РД: 0000 0000 0001 0100);
додає до акумулятора число з 11-ої комірки пам’яті і зберігає результат в акумуляторі (число 54; А: 0000 0000 0011 0110);
На третьому кроці ЕОМ виконує інструкцію STORE 12:
звертається до 12-ої комірки пам’яті (РА: 0000 0000 1100);
записує в неї дані з акумулятора (число 54; РД: 0000 0000 0011 0110);
На четвертому кроці ЕОМ:
звертається до 3-ої комірки пам’яті (РА: 0000 0000 0011);
зчитує її вмістиме (інструкція HALT; РД: 0111 1100 0000 0000);
записує її до регістру інструкцій;
зупиняє роботу процесора.
Висновок:
На лабораторній роботі №1 я вивчив організацію стимулятора DeComp, його блоків (пульта управління, пам’яті, АЛП, пристроєм управління) і можливостей їх використання (введення даних в регістри процесора і читання даних з пам’яті);
Засвоїв порядок введення інформації в регістри та пам’ять симулятора (з допомогою набірного поля) навчального комп’ютера, навчився вводити і запускати найпростішу программу.
Вивчив теоретичні основи побудови систем числення, які використовуються у комп’ютерах;
Засвоїв порядок використання двійкової системи числення.