Кожна ЕОМ розробляється для розв’язання в основному задач деякого класу.
У зв’язку з цим потрібно, щоб ЕОМ забезпечувала можливість виконання у необхідних сполученнях деякого набору операцій, прийнятих за елементарні.
Елементарними машинними операціями є: ввод інформації в комірку опера- тивної пам’яті з будь-якого іншого запам’ятовуючого пристрою, видача інформації з комірки, а також будь-яка операція котра:
1) реалізована апаратно;
2) має вихідні дані, що є результатами елементарних машинних операцій і фіксовані в одній або декількох комірках;
3) дає результат, фіксований в одній окремій комірці і доступний, але не
обов’язковий для використання в якості вихідного даного для деяої елементарної операції машини;
4) не може розглядатися як комплекс більш простих машинних операцій, які
задовольняють трьом попереднім умовам.
Сукупність усіх машинних операцій, передбачених у програмно керованій машині, називається її системою операцій. Слід чітко розмежувати поняття
команди і поняття операції. Команда являє собою елементарний наказ, що передбачає виконання деякої групи операцій.
Формати команд та кодування операцій ЕОМ
Код команди, що описується ЕОМ має структуру виду q a 1 a 2… an, тобто складається з коду операції q (операційне поле) і адрес операндів a 1… an (адресне поле). Кількість таких адрес називається адресністю команди. Звичайно викори- стовуються команди з адресністю 1, 2 або 3. В одноадресній команді перша (і єдина) адреса вказує на операнд – джерело. У двох- і трьохадресних командах перша адреса вказує на операнд – приймач результату виконання команди.
Розрядність коду операції визначається об’ємом системи операцій ЕОМ. Наприклад, якщо ЕОМ підтримує 100 операцій, розрядність q визначається як:
n q= ] log2 q [ = ] log2 100 [ = 7 біт. Тут розгорнуті дужки означають примусове округлення вгору.
Розрядність адрес операндів a 1… an визначається максимально можливою адресою операнда в оперативній пам’яті:
na = ] log2 a [.
Під форматом команди розуміють структуру полів кода команди з вказівкою їх границь. Наприклад, якщо ЕОМ підтримує 30 операцій, а оперативна пам’ять складається з 500 комірок, трьохадресна команда матиме наступний формат:
Код операції | Операнд-приймач | Операнд-джерело 1 | Операнд-джерело 2 |
31 27 26
18 17 9 8 0
Рисунок 1 – Формат команди
МЕТОДИЧНІ ВКАЗІВКИ
В даній роботі пропонується розробити програму розрахунку заданого ариф-
метичного виразу для ЕОМ з нейманівською архітектурою.
Для виконання роботи необхідні грунтовні знання систем числення, основ двійкової арифметики, форматів команд і кодування операцій ЕОМ.
Роботу слід виконувати в наступній послідовності:
1. Розробити схему алгоритма розв’язку задачі.
2. Написати програму в змістовній формі.
3. Визначити систему операцій ЕОМ.
4. Виконати кодування операцій ЕОМ.
5. Адресну інформацію представити в 16-й системі числення.
6. Виконати розподіл пам’яті ЕОМ.
7. Написати програму в машинних кодах.
При написанні програми у змістовні формі слід користуватися мнемонічними позначеннями команд, приведеними в наступній таблиці.
Таблиця 1 – Мнемонічні коди команд
Номер п/п | Мнемонічний код | Пояснення |
LOAD | Завантаження даних з ОП в регістр | |
SEND | Запис даних з регістра в комірку ОП | |
ADD | Складання | |
SUB | Віднімання | |
MUL | Множення | |
DIV | Ділення | |
JMP | Безумовний перехід | |
NOP | Пуста операція | |
STOP | Зупин |
Регістри процесора (у двох- і трьохадресних командах) адресуються як комірки оперативної пам’яті з молодшими адресами. При написанні програми слід використовувати мінімально можливу кількість регістрів.
Усі дані зберігаються в оперативній пам’яті в додаткових кодах.
ЛІТЕРАТУРА
1. Вступ до комп’ютерної інженерії: Методичні вказівки та завдання до контрольної роботи / Уклад.: В. М. Єфимець, І. А. Жуков, Т. Г. Кудзиновська та ін. – К.: НАУ, 2001. – 16 с.
2. Программирование и алгоритмические языки. Н. А. Криницкий, Г. А. Ми-
ронов, Г. Д. Фролов, под ред. А. А. Дородницына. – М.: “Наука”, 1975. – 496 с.
ЗАВДАННЯ
Таблиця 2 – Варіанти завдань
ВАР | n | АК | АПР | y | a | b | c | d | Вираз |
y = (a + b) / (c – d) + a | |||||||||
y = a + b / c – d ´ a | |||||||||
y = a ´b – (c – d) / b | |||||||||
y = (a + b ´ c) / (d – a) | |||||||||
y = (a ´ b + c ´ d) / b – c | |||||||||
y = (c – b / a) ´d + a | |||||||||
y = (a + c) / d – b / c | |||||||||
y = (a – b) / c + (a + b) / d | |||||||||
y = (c – a) ´b + (b – a) ´d | |||||||||
y = d ´ b – (b – a ´ c) / d | |||||||||
y = b ´ c / (d + a) – a |
|
y = (d ´ a + b ´ c) / (c – d) | |||||||||
y = b – c ´a / (b + d) | |||||||||
y = a ´ b + (c – d ´ b) / a | |||||||||
y = (a + b ´ c) / (c + a / d) |
В таблиці 2 прийняті наступні позначення: ВАР – варіантний номер; n – розрядність команди; АК – адресність команди; АПР – адреса початку програми; y, a, b, c, d – адреси відповідних комірок пам’яті (змінних).