Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab2.doc
Скачиваний:
5
Добавлен:
24.11.2019
Размер:
228.86 Кб
Скачать

1.4. Дослідження виконання інструкцій навчального комп’ютера

Для дослідження алгоритмів і ходу виконання програм за окремими інструкціями існує покроковий режим роботи навчального комп’ютера, з яким ми ознайомилися у лабораторній роботі № 1.

Загальний принцип виконання однієї інструкції ми вже знаємо: спочатку її необхідно прочитати з пам’яті, а потім, у залежності від коду операції, виконати ті або інші необхідні дії. Це і є найбільш спрощений порядок виконання інструкції:

  1. вибірка (читання) інструкції (fetch – вибір, виклик). ;

  2. виконання інструкції (execution –виконання).

Оскільки більшість інструкцій призначені для виконання різних операцій, для яких необхідні вхідні числа, а також збереження результату, для більшості процесорів комп’ютерів стандартним є такий, більш детальний порядок виконання інструкцій:

  1. вибірка інструкції;

  2. декодування (розпізнавання) інструкції;

  3. вибірка (читання) операндів;

  4. виконання операції (арифметичної, логічної чи якоїсь іншої);

  5. збереження (запис) результату.

У порівнянні із попереднім, простішим порядком виконання інструкції, у детальнішому порядку етап вибірки інструкції розділився на 2 частини: вибірку та декодування (розпізнавання) інструкції. Дійсно, етап декодування є надзвичайно важливим: він фактично є функцією пристрою керування, який повинен розпізнати (декодувати) інструкцію за її кодом операції, а також згенерувати послідовність керуючих сигналів, які спричинять виконання усіх наступних етапів.

Крім того, 2-й етап – виконання інструкції – розділився на 3 частини: вибірку операндів, виконання операції та збереження результату. При цьому, під читанням та записом маються на увазі операції звертання до пам’яті.

Але насправді виконання інструкції складається з ще більшої кількості етапів.

Для дослідження порядку виконання окремих інструкцій у процесорі призначений 3-й режим роботи навчального комп’ютера – потактовий.

Виконання роботи:

1. Описати призначення прапорців Регістру Ознак.

Регістр ознак служить для фіксації трьох станів:

а) Z (zero) – результат операції дорівнює 0

б) S (sign) – результат операції від’ємне число.

в) С(carry) – переповнення розрядної сітки акумулятора, наприклад про додавання 2-ох 16-ти розрядних чисел.

2. Ввести у симулятор і виконати дослідження у потактовому режимі програми додавання двох чисел, яка була підготована у роботі № 1. Записати результати – мікропрограму виконання з необхідними поясненнями.

1) Запустив програму DeComp, увімкнув живлення.

2) Перевів симулятор до потактового режиму роботи.

3) Натискаючи кнопку «Пуск», виконав програму, фіксуючи хід програми у нижчеподаній таблиці.

Мнемонічний запис

Код, що обробляється

Коментар

1

ЛАІ  РА

0000 0000 0000

вибір адреси 1-ої інструкції і занесення її до Регістра Адреси

2

ПамРА  РД

0000 0000 0000 1010

вибір коду 1-ої інструкції з пам’яті за адресою РА і занесення його до Регістра Даних

3

РД  РІ

0000 0000 0000 1010

декодування інструкції у Регістрі Інструкцій

4

РІ  РА

0000 0000 1010

вибір адреси 1-го операнда

5

ПамРА  РД

0000 0000 0010 0011

вибір коду 1-го операнда з пам’яті за адресою РА і запис його до Регістру Даних

6

РД  А

0000 0000 0010 0011

занесення операнду з РД до Акумулятора

7

ЛАІ + 1  ЛАІ

0000 0000 0001

підготовка адреси нової інструкції

8

ЛАІ  РА

0000 0000 0001

вибір адреси 2-ої інструкції і занесення її до Регістра Адреси

9

ПамРА  РД

0010 0000 0000 1011

вибір коду 2-ої інструкції з пам’яті за адресою РА і занесення його до Регістра Даних

10

РД  РІ

0010 0000 0000 1011

декодування інструкції у Регістрі Інструкцій

11

РІ  РА

0000 0000 0000 1011

вибір адреси 2-го операнда

12

ПамРА  РД

0000 0000 0010 0011

вибір коду 2-го операнда з пам’яті за адресою РА і запис його до Регістру Даних

13

А+РДА

0000 0000 0011 1101

виконання операції додавання

14

А(Z,S,C)РО

000

встановлення прапорців Регістру Ознак

15

ЛАІ + 1  ЛАІ

0000 0000 0010

підготовка адреси нової інструкції

16

ЛАІ  РА

0000 0000 0010

вибір адреси 3-ої інструкції і занесення її до Регістра Адреси

17

ПамРА  РД

0001 0000 0000 1100

вибір коду 3-ої інструкції з пам’яті за адресою РА і запис його до Регістру Даних

18

РД  РІ

0001 0000 0000 1100

декодування інструкції у Регістрі Інструкцій

19

РІ  РА

0000 0000 1100

вибір адреси для зберігання значення акумулятора

20

А  РД

0000 0000 0011 1101

перенесення значення з Акумулятора до Регістру Даних

21

РД ПамРА

0000 0000 0011 1101

занесення значення з Регістру Даних до комірки пам’яті за адресою РА

22

ЛАІ + 1  ЛАІ

0000 0000 0011

підготовка адреси нової інструкції

23

ЛАІ  РА

0000 0000 0011

вибір адреси 4-ої інструкції і занесення її до Регістра Адреси

24

ПамРА  РД

0111 1100 0000 0000

вибір коду 4-ої інструкції з пам’яті за адресою РА і запис його до Регістру Даних

25

РД  РІ

0111 1100 0000 0000

декодування інструкції у Регістрі Інструкцій

3. Ввести у симулятор та виконати дослідження у покроковому режимі програми, яка відніматиме два числа А і В для значень, коли А = В, А > В і А < В, вибравши довільні відповідні значення. Виписати результати виконання дослідження і значення прапорців ознак у таблицю, взірець якої поданий у роботі № 1. Поясніть отримані результати.

Використовуються комірки 1010 та 1110 для значень А і В відповідно, та комірка 1210 для збереження результату.

Текст програми:

№ комірки пам’яті у двійковому коді

Код інструкції

(двійковий)

Мнемонічний запис інструкції

Коментар до інструкції

1

0000 0000 0000

0000 0000 0000 1010

LOAD 10

Завантаження числа А з 10 комірки до акумулятора

2

0000 0000 0001

0011 0000 0000 1011

SUB 11

Віднімання числа В з 11 комірки від числа в акумуляторі

3

0000 0000 0010

0001 0000 0000 1100

STORE 12

Запис результату з акумулятора в пам'ять

4

0000 0000 0011

0111 1100 0000 0000

HALT

Припинення виконання програми

A=B

РА

РД

А

РІ

ЛАІ

РО

1-й крок

0000 0000 1010

0000 0000 0011 0000

0000 0000 0011 0000

0000 0000 0000 1010

0000 0000 0001

0 0 0

2-й крок

0000 0000 1011

0000 0000 0000 0000

0000 0000 0000 0000

0011 0000 0000 1011

0000 0000 0010

1 0 0

3-й крок

0000 0000 1100

0000 0000 0011 1101

0000 0000 0000 0000

0001 0000 0000 1100

0000 0000 0011

1 0 0

4-й крок

0000 0000 0011

0111 1100 0000 0000

0000 0000 0000 0000

0111 1100 0000 0000

0000 0000 0011

1 0 0

Результат операції віднімання дорівнює 0 , тому перший тригер РО Z встановлений в 1. 0 число без знаку, переповнення розрядної сітки не виникло тому решта тригерів S та С встановлені в 0.

А > В

РА

РД

А

РІ

ЛАІ

РО

1-й крок

0000 0000 1010

0000 0000 0000 0010

0000 0000 0000 0010

0000 0000 0000 1010

0000 0000 0001

0 0 0

2-й крок

0000 0000 1011

0000 0000 0011 0000

0000 0000 0000 1100

0011 0000 0000 1011

0000 0000 0010

0 0 0

3-й крок

0000 0000 1100

0000 0000 0000 1100

0000 0000 0000 1100

0001 0000 0000 1100

0000 0000 0011

0 0 0

4-й крок

0000 0000 0011

0111 1100 0000 0000

0000 0000 0000 1100

0111 1100 0000 0000

0000 0000 0011

0 0 0

Результат операції не дорівнює 0, число додатне, переповнення розрядної сітки не виникло, тому всі тригери РО встановлені в 0.

А < В

РА

РД

А

РІ

ЛАІ

РО

1-й крок

0000 0000 1010

0000 0000 0000 0010

0000 0000 0000 0010

0000 0000 0000 1010

0000 0000 0001

0 0 0

2-й крок

0000 0000 1011

0000 0000 0000 0011

1111 1111 1111 1111

0011 0000 0000 1011

0000 0000 0010

0 1 1

3-й крок

0000 0000 1100

1111 1111 1111 1111

1111 1111 1111 1111

0001 0000 0000 1100

0000 0000 0011

0 1 1

4-й крок

0000 0000 0011

0111 1100 0000 0000

1111 1111 1111 1111

0111 1100 0000 0000

0000 0000 0011

0 1 1

Результат операції число від’ємне, тому в 1 встановлений тригер S, до того ж виникло переповнення розрядної сітки акумулятора, тому в 1 встановлений також тригер С. Переповнення виникло через те, що для симулятора числом після 0 у від’ємному напрямку буде не -110, а 1111 1111 1111 11112, так само як при додаванні до 1111 1111 1111 11112 числа 110 результатом буде 0. Через те що розрядна сітка не передбачує від’ємних чисел, або чисел розрядністю більше 1610, для кодування від’ємних чисел використовується тригер S(знак). Отже число 1111 1111 1111 11112 при тригері S встановленому в 1 інтерпретується як -1, а при тригері S встановленому в 0 як 6553510.

4. Ввести у симулятор та виконати дослідження у потактовому режимі 3-х окремих інструкції – LOAD, STORE i SUB. Пояснити необхідну підготовку числових даних, виписати порядок виконання інструкцій у вигляді мікропрограм із вказанням реальних значень регістрів і поясненням дій, що виконуються у кожному такті.

LOAD.

В 110 комірці пам’яті розташована інструкція LOAD 10102 , в 1010 комірці число 510.

Мнемонічний запис

Код, що обробляється

Коментар

1

ЛАІ  РА

0000 0000 0000

вибір адреси 1-ої інструкції і занесення її до Регістра Адреси

2

ПамРА  РД

0000 0000 0000 1010

вибір коду 1-ої інструкції з пам’яті за адресою РА і занесення його до Регістра Даних

3

РД  РІ

0000 0000 0000 1010

Декодування інструкції у Регістрі Інструкцій

4

РІ  РА

0000 0000 1010

вибір адреси операнда

5

ПамРА  РД

0000 0000 0000 0101

вибір коду операнда з пам’яті за адресою РА і запис його до Регістру Даних

6

РД  А

0000 0000 0000 0101

занесення операнду з РД до Акумулятора

STORE.

В 210 комірці пам’яті розташована інструкція STORE 10112, в акумуляторі число 410.

Мнемонічний запис

Код, що обробляється

Коментар

1

ЛАІ  РА

0000 0000 0001

вибір адреси 2-ої інструкції і занесення її до Регістра Адреси

2

ПамРА  РД

0000 0000 0001 1011

вибір коду 2-ої інструкції з пам’яті за адресою РА і занесення його до Регістра Даних

3

РД  РІ

0000 0000 0001 1011

Декодування інструкції у Регістрі Інструкцій

4

РІ  РА

0000 0000 1011

вибір адреси для зберігання значення акумулятора

5

А  РД

0000 0000 0000 0100

Перенесення значення з Акумулятора до Регістру Даних

6

РД ПамРА

0000 0000 0000 0100

занесення значення з Регістру Даних до комірки пам’яті за адресою РА

SUB.

В 310 комірці пам’яті розташована інструкція SUB 10112, в акумуляторі число 510, в 11 комірці число 410.

1

ЛАІ  РА

0000 0000 0010

вибір адреси 3-ої інструкції і занесення її до Регістра Адреси

2

ПамРА  РД

0011 0000 0000 1011

вибір коду 3-ої інструкції з пам’яті за адресою РА і занесення його до Регістра Даних

3

РД  РІ

0011 0000 0000 1011

декодування інструкції у Регістрі Інструкцій

4

РІ  РА

0000 0000 1011

вибір адреси операнда

5

ПамРА  РД

0000 0000 0000 0100

вибір коду операнда з пам’яті за адресою РА і запис його до Регістру Даних

6

А-РДА

0000 0000 0000 0001

виконання операції віднімання

7

А(Z,S,C)РО

000

встановлення прапорців Регістру Ознак

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]