Индексная адресация означает, что для того, чтобы определить исполнительный адрес, ЦП складывает содержимое индексного регистра с адресом, содержащимся в команде. Одноадресная команда LOAD 100, X (знак, X означает индексацию) заставляет ЦП сначала вычислить исполнительный адрес путем сложения 100 с содержимым индексного регистра, а затем загрузить в аккумулятор исполнительный адрес. Если индексный регистр содержит число 35, то команда LOAD 100,X выполняет то же действие, что и команда LOAD 135. Индексная адресация используется главным образом для обработки-массивов и таблиц. На рис. 3.8 показано, как вычислить среднее значение списка чисел, используя индексную адресацию. Рисунок 3.9 демонстрирует, каким образом можно получить таблицу квадратов чисел, используя индексную адресацию.
Индексная адресация медленнее прямой, так как ЦП должен выполнить дополнительные операции для получения исполнительного адреса. Индексная адресация более гибкая, чем прямая, так как по одной и той же команде, можно обрабатывать все элементы массива или таблицы. Большинство программистов считает индексную адресацию легкой в работе, так как стандартная система записи программ позволяет оперировать с массивами по индексам, X* — это х-й Элемент массива X. Чтобы обработать Х-массив, используя индексную адресацию, исходный (базовый) адрес помещают в команду, а индекс i — в регистр индексов.
Шаг 1:
LOAD # 0
LOAD INDEX REGISTER #0
Шаг 2:
ADD NUMBER, X
Шаг 3:
INCREMENT INDEX REGISTER BY1
Шаг 4:
Если нежелательно использовать команду сложения для всех чисел, то возвращаются к шагу 2
Шаг 5:.
DIVIDE # N (N — число элементов) STORE AVG
Примечание. Символ # означает индексную адресацию.
.jpg)