Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все в одном.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.96 Mб
Скачать

15)Форматы команд

Подформатом команды следует понимать длину команды, количество, размер, положение, назначение и способ кодировки ее полей.

Команды, как и любая информация в ЭВМ, кодируются двоичными словами, которые должны содержать в себе следующие виды информации:

тип операции, когорую следует реализовать в данной команде (КОГ1); П место в памяти, откуда следует взять первый операнд (Л 1);

место в памяти, откуда следует взять второй операнд (А2);

место в памяти, куда следует поместить результат (A3).

Каждому из этих видов информации соответствует своя часть двоичного слова — поле, а совокупность полей (их длины, расположение в командном ело-

вс. способ кодирования информации) называется форматомкоманды.В свою очередь, некоторые поля команды могут делиться на подполя.

Команды трехадресного формата занимают много места в памяти, в то же время далеко не всегда поля адресов используются в командах эффективно. Действительно, наряду с двухместными операциями (сложение, деление, конъюнкция и др.) встречаются и одноместные (инверсия, сдвиг, инкремент н др.), для которых третий адрес не нужен. При выполнении цепочки вычислений часто результат предыдущей операции используется в качестве операнда для следующей. Более того, нередко встречаются команды, для которых операнды не определены (СТОП) или подразумеваются самим кодом операций (DAA, десятичная коррекция аккумулятора)

Поэтому в системах команд реальных ЭВМ трсхадресные команды встречаются редко. Чаще используютсядвухадресные команды (рис. 2.1,6), в этом случае в бинарных операциях результат помещается на место одного из операндов.

Для реализации одноадресных форматов (рис. 2.1, в) в процессоре предусматривают специальную ячейку —аккумулятор. Первый операнд и результат всегда размещаются в аккумуляторе, а второй операнд адресуется полем А.

Реальная система команд обычно имеет команды нескольких форматов, причем тип формата определяется в поле КОП.

16) Способи адресації.

Сукупність адрес, які може сформувати процесор, утворює адресний простір мікропроцесорної системи. Спосіб адресації - це спосіб обчислення адреса операнда на основі тієї інформації, яка міститься в самій команді. У СК існує декілька способів адресації операндів. Для того щоб розрізнити спосіб адресації в адресній частині команди є спеціальне поле.

1. Пряма адресація - К0П-Ак-операнд. Адресний код прямо вказує на номер комірки пам’яті до якої відбувається звертання, тобто адресний код співпадає з використаним адресом. Адресна команда містить безпосередню пряму адресу. Недолік: дуже довге адресне поле в команді.

2. Безпосередня адресація - в команді міститься не адреса операнда, а безпосередньо сам операнд, тому не треба звертання до пам’яті для вибірки операнда і не треба комірки для зберігання результату, це скорочує час виконання програми і об’єму пам’яті. Цей вид адресації використовується для зберігання констант.

3.Непряма адресація - адресний код команди вказує на адресу комірки пам’яті команди, де зберігається не сам операнд, а лише адреса, яка називається покажчиком. Адресація до операнда через ланцюжок покажчиків називається непрямо. Адреса покажчика, яка задається програмою залишається незмінною, а непряма адреса може змінюватися в процесі виконання програми (переадресація даних, спрощення обробки масивів, спискових структурних данних).

4.Відносна адресація - Використовується тоді коли пам’ять розбивається на блоки, які називаються сегментами. В цьому разі адреса складається з двох складових: адрес початку сегменту (базова адреса) та зміщення адреси операнда в сегменті. Таким чином адреса операнда визначається, як сума базової адреси і зміщення відносно цієї бази. Базова адреса знаходиться в одному з регістрів регістрової пам’яті, а зміщення може бути задано в самій команді, або в регістрі.

5. Стекова адресація - Стек утворюється множиною взаємопов’язаних комірок, які взаємодіють по принципу: "Останнім ввійшов, першим вийшов". LIFO (last in first out) - верхню комірку стеку називають вершиною стеку. Для роботи зі стеком передбачено 2 операції. PUSH ( проштовхування даних в СТЕК) і РОР ( виштовхування зі стеку). Запис і читання є можливим тільки з верхню комірку стеку при цьому вся інформація, яка зберігається в стеку проштовхується вверх, або вниз. Результат операції також записується в стек. При опису обчислень за допомогою стеку, зазвичай використовують зворотній польський запис.