Міністерство освіти та науки України
Національний університет «Львівська політехніка»
Кафедра ЕОМ
ЗВІТ
З лабораторної роботи №2
з дисципліни «Організація та функціонування комп’ютерів»
на тему: «Набір інструкцій навчального комп’ютера.
Загальний порядок виконання інструкцій.»
Порядок виконання роботи
Прапорці регістру ознак – тригери: Z,C,S. На панелі навчального комп’ютера вони знаходяться біля акумулятора.
Z – встановлюється (світиться), якщо результат операції дорівнює 0.
S – встановлюється, якщо результат операції – від’ємне число.
C – встановлюється, коли у результаті арифметичної операції (додавання чи віднімання) виникає перенос із старшого розряду.
У покроковому режимі ввів у симулятор програму додавання двох чисел, які були у роботі №1.
( LOAD 10)
ЛАІ→РА (0000 0000 0000)
РА→РД (0000 0000 0000 1010)
РІ→РА (0000 0000 1010)
РД→РІ (0000 0000 1010)
РА→РД (0000 0000 0010 1000)
РД→А (0000 0000 0010 1000)
ЛАІ+1→ЛАІ (0000 0000 0001)
(ADD 11)
ЛАІ→РА (0000 00000 0001)
РА→РД (0010 0000 0000 1011)
РІ→РА (0010 0000 0000 1011)
РД→РІ (0010 0000 0000 1011)
РА→РД (0010 0000 0010 1011)
РД→А (0000 0000 0010 1000)
А→РО
ЛАІ+1→ЛАІ (0000 0000 0101)
STORE
ЛАІ→РА(0000 0000 0010)
РА→РД (0001 0000 0000 1100)
РІ→РА (0000 0000 0000 1100)
РД→РІ (0000 0000 0011 0011)
А→РД (0000 0000 0011 0011)
РД→РА
ЛАІ+1→ЛАІ (0000 0000 0011)
4) SUB
ЛАІ→РА (0000 0000 0011)
РА→РД (0111 1100 000 000)
РД→РІ (0111 1100 0000 0000)
Тепер віднімання двох чисел, в даному випадку це будуть 67 і 67. В набірному полі вводжу 0000 0000 0010 1000, тисну кнопку РА, цим вибираючи 40-ву комірку, далі в набірному полі вводжу 0000 0000 0100 0011, тисну кнопку РД і «Запис», заносячи до 40-ї комірки число 67. Тисну «+1», збільшуючи значення РА на 1 і за допомогою набірного поля заношу до цієї комірки те саме число. Тепер у набірному полі набираю 0000 0000 0001 0100 і кнопкою РА заношу значення до Регістру адреси пам'яті. Тепер за допомогою набірного поля, кнопки РД і кнопки «Запис» заношу у цю комірку інструкцію зчитування операнда 40-ї комірки до акумулятора: 0000 0000 0010 1000. Таким самим чином, збільшуючи значення комірок кнопкою «+1» вношу в наступні інструкції:
0011 0000 0010 1001 – віднімає від числа, що в акумуляторі операнд 41-ї комірки;
0001 0000 0010 1010 – зберігає результат у 42-у комірку;
0111 1000 0000 0000 – виводить значення з акумулятора на пристрій виводу;
0111 1100 0000 0000 – закінчує виконання програми.
Тепер вводжу в ЛАІ 0000 0001 0100 і запускаю програму в покроковому режимі. При закінченні програми на Регістрі ознак засвічується Z, що означає, що результат віднімання – від’ємний.
Тепер у 41-у (0000 0000 0010 1001) комірку вводжу число 52 (0000 0000 0011 0100) і виконую програму знову. Виконавши програму бачу на пристрої виводу число 0000 0000 0000 1111 – 15. На Регістрі ознак не світяться ніякі ознаки.
Тепер у 41-у комірку вводжу число 79 (0000 0000 0100 1111) і виконую програму знову. Після виконання програми на Регістрі ознак засвічується S і C, що означає, що результат від’ємний і відбулось розрядне переповнення. Розрядне переповнення відбулось тому, що від’ємне число представляється в оберненому коді, а перед цим кодом ставиться одиничка, яку машина автоматично поставила в 16-й розряд. Але я можу взнати результат віднімання, замінивши в числі, яке видав порт виводу нулі на одинички і навпаки і враховуючи, що результат від’ємний: 1111 1111 1111 0100 – 0000 0000 0000 1011.
У потактовому режимі розглянемо виконання функції LOAD, для цього у 10-у комірку внесем інструкцію 0000 0000 0010 1000, яка буде читати значення 40-ї комірки, а в 11-у комірку функцію HALT – 0111 1100 0000 0000, щоб програма зупинилась. ЛАІ встановлюємо на 0000 0000 1010 і тиснемо «Пуск»:
№
Зачення РА
Код інструкції
Мнемонічний запис
Коментар
1
0000 0000 1010
0000 0000 0010 1000
LOAD
Завантажує операнд 10-ї комірки
2
0000 0000 1011
0111 1100 0000 0000
Halt
Зупиняє виконання програми
Такт 1: ЛАІ ( РА (0000 0000 1010) – вибір адреси інструкції;
Такт 2: Пам’ять РА ( РД (0000 0000 0010 1000) – зчитування коду інструкції;
Такт 3: РД ( РІ (0000 0000 0010 1000) – розшифровка інструкції;
Такт 4: РІ ( РА (0000 0000 0010 1000) – вибір адреси 1-го операнду;
Такт 5: Пам’ять РА ( РД (0000 0000 0100 0011) – зчитування першого операнду;
Такт 6: РД ( Акумулятор (0000 0000 0100 0011) – занесення операнду до акумулятора.
На цьому зчитування закінчується і йде підготовка наступної інструкції.
Тепер виконаєм функцію STORE, для цього в набірному полі вводжу 0000 0000 0100 0011 (67) і кнопкою А заношу значення до акумулятора. В 11-у комірку заношу інструкцію 0001 0000 0000 1010, яка збереже число у десяту клітинку, в наступну комірку заношу інструкцію зупинки програми – 0111 1100 0000 0000. Встановлюю ЛАІ на 0000 0000 0000 1011 і запускаю програму в потактовому режимі:
№п/п
Зачення РА (Binary)
Код інструкції
Мнемонічний запис
Коментар
1
0000 0000 1011
0001 0000 0000 1010
STORE
Збереже операнд до 10-ї комірки
2
0000 0000 1100
0111 1100 0000 0000
Halt
Зупиняє виконання програми
Такт 1: ЛАІ ( РА (0000 0000 1011) – вибір адреси інструкції;
Такт 2: Пам’ять РА ( РД (0001 0000 0000 1010) – зчитування коду інструкції;
Такт 3: РД ( РІ (0001 0000 0000 1010) – розшифровка інструкції;
Такт 4: РІ ( РА (0000 0000 1010) – вибір адреси куди занесеться значення акумулятора;
Такт 5: Акумулятор ( РД (0000 0000 0100 0011) – зчитування до пам’яті;
Такт 6: РД ( Пам’ять РА (0000 0000 0100 0011) – запис до комірки.
На цьому запам’ятовування закінчується і йде підготовка наступної інструкції.
Тепер розглянем функцію SUB, для цього в Акумулятор записую 0000 0000 0100 1111, а у 10-у комірку інструкцію 0011 0000 0010 1000, яка буде віднімати операнд 40-ї комірки. В 11-у комірку записую інструкцію 0111 1100 0000 0000, яка зупинить програму. Встановлюю ЛАІ на 0000 0000 1010 і запускаю програму:
№п/п
Зачення РА (Binary)
Код інструкції
Мнемонічний запис
Коментар
1
0000 0000 1010
0011 0000 0010 1000
SUB
Віднімання 2-го операнду від значення акумулятора
2
0000 0000 1011
0111 1100 0000 0000
Halt
Зупиняє виконання програми
Такт 1: ЛАІ ( РА (0000 0000 1010) – вибір адреси інструкції;
Такт 2: Пам’ять РА ( РД (0011 0000 0010 1000) – зчитування коду інструкції;
Такт 3: РД ( РІ (0011 0000 0010 1000) – розшифровка інструкції;
Такт 4: РІ ( РА (0000 0010 1000) – вибір адреси 2-го операнду;
Такт 5: Пам’ять РА ( РД (0000 0000 0100 0011) – зчитування 2-го операнду;
Такт 6: РД ( Акумулятор (0000 0000 0000 1100) – дія віднімання;
Такт 7: Акумулятор ( Регістр ознак – перевірка результату.
На цьому віднімання закінчується і йде підготовка наступної інструкції.
Висновок:
Засвоїв порядок виконання програм у комп’ютері.
Ознайомився з режимами роботи навчального комп’ютера та засвоїти базовий порядок виконання інструкцій навчального комп’ютера.
Засвоїв призначення регістру ознак процесора.