Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Самостійні архітектура.doc
Скачиваний:
12
Добавлен:
10.11.2019
Размер:
4.33 Mб
Скачать

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

Існує два різних принципи пошуку операндов у пам'яті: асоціативний й адресний.

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

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

Варто розрізняти поняття виконавчої адреси й адресного коду.

Адресний код – це інформація про адресу операнда, що міститься в команді.

Виконавча адреса – це номер комірки пам'яті, до якої фактично виконується звернення.

У сучасних ЕОМ адресний код, як правило, не збігається з виконавчою адресою. Таким чином, спосіб адресації можна визначити як спосіб формування виконавчої адреси операнда Аи по адресному коді команди Ак.

У системах команд сучасних ЕОМ часто передбачається можливість використання декількох способів адресації операндів для однієї й тієї ж операції. Для вказівки способу адресації в деяких системах команд виділяється спеціальне поле в команді - «метод» (покажчик адресації). У цьому випадку будь-яка операція може виконуватися з будь-яким способом адресації, що значно спрощує програмування.

Адресуемі в командах операнди зберігаються в основній пам'яті (ОП) і регістрової пам'яті (РП).

Р

Памяти для зберігання адресуемих операндов

озглянемо способи адресації, застосовувані в сучасних ЕОМ.

По наявності адресної інформації в команді розрізняють явну й неявну адресацію.

При явній адресації операнда в команді є поле адреси цього операнда, у якому задається адресний код Ак.

При неявній адресації адресне поле в команді відсутнє, адреса операнда задається кодом операції.Код операції точно задає адресу операнда. Результат у цій команді розміщується на місце іншого операнда.

Безпосередня адресація операнда - операнд розташовується в адресному полі команди. Звертання до регістрової пам'яті (РП) або оперативної пам'яті (ОП) не виконується.

Пряма адресація операндів. При цьому способі адресації звернення за операндом у РП або ОП виконується по адресному коді в полі команди, тобто виконавча адреса операнда збігається з адресним кодом команди (Аи = Ак).

Рис.3.3. Схема прямої адресацій

Непряма адресація операндів - адресний код команди вказує адресу комірки пам'яті, у якій перебуває не сам операнд, а лише адреса операнда, що називається покажчиком операнда.

Адресація до операнду через коло покажчиків (непрямих адрес) називається непрямою.

Адрес указателя

Непряма адресація

Відносна адресація. При базуванні способом підсумовування адресний код Ак у команді розділяється на дві складові: АБ - адреса регістра в регістровій пам'яті , у якому зберігається база Б (базова адреса); З - код зсуву щодо базової адреси

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

Рис. 3.5 Схема формування відносної адреси способом підсумовування кодів бази й зсуви.

СМ - суматор,

РАОП - регістр адреси ОП,

Б - база (базова адреса),

С - зсув,

Аб – адреса регістра бази

При індексній адресації адреса i-гo операнда в масиві визначається як сума початкової адреси масиву і індексу И, записаного в одному з регістрів РП(індексним регістром). Адреса індексного регістра задається в команді полем адреси індексу — Аин (аналогічно АБ ).

В кожному i-м циклі вміст індексного регістра змінюється на величину постійну (часто рівну 1). Використання індексної адресації значно спрощує програмування циклічних алгоритмів.

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

Аи = Б + И + С.

Схема формування відносної адреси способом сполучення кодів бази й зсуви.

Рис. 3.7 Схема формування додаткової адреси при індексній адресації й базуванні: АИН - адреса індексного регістра.

Cтек пам'яті (стек) є ефективним елементом сучасних ЕОМ, реалізує неявне завдання адреси операнда. Хоча адреса звернення до стеку відсутня у команді, вона формується схемою керування автоматично за спеціальним правилом.