Відносна адресація. Базова адресація. Індексна адресація. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Відносна адресація. Базова адресація. Індексна адресація.



Відносна адресація

При відносній адресації для отримання виконавчої адреси операнда вміст Б адрес­ного поля команди додається до вмісту програмного лічильника ПЛ, як це показано на рис. 3.28. Тобто вміст адресного поля команди є зміщенням відносно адреси поточної команди. Даний тип адресації грунтується на тому, що при вибірці команд звернення від­бувається до комірок пам’яті, розміщених поблизу одна від одної. Тим самим зменшується довжина адресної частини команди, оскільки довжина поля зміщення може бути досить малою. Більше того, при переміщенні програми в пам’яті значення зміщення не змінюєть­ся, оскільки взаємне розміщення в пам’яті команд програми при цьому не змінюється.

АЧ

Рис. 3.28. Адресація основної пам’яті з використанням відносної адресації

 

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

Базова адресація

При використанні базової адресації (або базування) адресна частина команди вмі­щує два поля. В першому полі знаходиться адреса В регістра із регістрового файлу про­цесора, в якому зберігається база, до якого додається зміщення Б із другого поля і тим самим формується виконавча адреса операнда (рис. 3.29). Ця адреса поступає на адресні входи основної пам’яті ОП, у відповідну комірку якої в режимі запису записується операнд із регістра даних РгД, а в режимі зчитування зчитується операнд в регістр даних РгД.

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

Якщо основна пам’ять може зберігати М слів, регістровий файл процесора може збе­рігати N слів, а сегмент має розмір Ь слів, то, використовуючи двійкове кодування, поле В буде займати n біт.

Рис. 3.29. Базова адресація ОП з використанням бази із регістрової пам'яті

 

Основна перевага відносної адресації - скорочення довжини команди за рахунок зменшення її адресної частини, а також спрощення розподілу пам’яті при написанні складних програм шляхом добавлення до кожного фрагменту програми відповідного значення базової адреси. Таким чином забезпечується переміщуваність фрагментів про­грами в полі пам’яті.

Індексна адресація

Індексна адресація використовується при виконанні циклів, коли потрібно збіль­шення або зменшення адреси на деяку величину. Цей спосіб адресації подібний до від­носної адресації, при якій адреса може автоматично змінюватися в процесі виконання програми. Індексація є засобом для багатократного виконання одних і тих же відрізків програми над різними наборами (масивами) вхідних даних. Тим самим забезпечується мінімальна залежність довжини програми від кількості повторюваних відрізків програ­ми. При цьому коди команд програми залишаються без змін. Для отримання виконав­чої адреси адресна частина команди додається до вмісту спеціального регістра, в якому зберігається номер оброблюваного масиву чисел. Ці регістри називають індексними, а їх вміст - індексною величиною, або індексом (рис. 3.30).

АЧ Рис. 3.30. Формування адреси при використанні індексної адресації

 

Вказівка про індексну адресацію вміщується в полі типу адресації. При наявності кількох індексних регістрів в цих розрядах команди вказується номер того індексного регістра, в якому зберігається значення індексу оброблюваного в даний час масиву ін­формації. Індекси можуть зберігатися як в спеціальних індексних регістрах, так і в регі­стровій пам’яті процесора. Вміст індексних регістрів змінюється після закінчення деяко­го циклу обробки. При цьому до попереднього значення індексу добавляється приріст, значення якого залежить від розміщення операндів в пам’яті.

Різновидністю індексної адресації є автоіндексація, при якій значення індексу є відо­мим наперед. Найчастіше операнди розміщуються в пам’яті послідовно і тому це зна­чення рівне +1 (так звана автоінкрементна адресація) або -І (так звана автодекрементна адресація). Порядок формування адреси при використанні автоінкрементної та автоде- крементної адресації показано на рис. 3.31, де для забезпечення переміщення по комір­ках пам’яті використовується лічильник.

АЧ Рис. 3.31. Формування адреси при використанні автоінкрементної та автодекрементноїадресації

 

Операції індексної арифметики виконуються в спеціальному індексному арифме­тичному пристрої, або в арифметико-логічному пристрої процесора. Команди індексної арифметики входять до складу команд керування. Вони забезпечують зміну значення індексу шляхом добавлення до нього приросту, перевірку закінчення індексного циклу та засилання початкових значень індексу. Значення індексів, приростів та інформаційні біти циклів формують керуюче слово, яке розміщується в одній або декількох командах керування. Послідовність таких управляючих слів забезпечує роботу з масивами даних.

 



Поделиться:


Последнее изменение этой страницы: 2016-08-01; просмотров: 525; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.146.221.204 (0.005 с.)