logo
AOM / Мельник А

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

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

113

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

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

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

114

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