49
Исполнительный  адрес  при  индексации  формируется  путем  сложения  смеще-
ния (D), содержимого индексного регистра (I), а при наличии базирования – и базово-
го адреса (АБ). Именно этот характерный  
случай показан на рис. 5.20. 
В ряде случаев базовые и индексные регистры назначаются программистом из 
некоторого общего массива регистровой памяти. Операция получения АИ  выполня-
ется  либо  в 
АЛУ  процессора,  либо  в  специальном  сумматоре  блока  индексной 
арифметики, что повышает быстродействие ЭВМ, но и увеличивает объем оборудо-
вания. 
Индексация служит  не только для организации циклов, но в сочетании с бази-
рованием  является  средством  описания  элементов  информационных  массивов, 
размещенных  в  ОП.  Индексация  вообще позволяет  достаточно  легко  модифициро-
вать исполнительные адреса, оставляя
 неизменным код самой команды, хранящей-
ся в ОП. 
Для управления индексацией  используются команды, задающие операции над 
содержимым  индексных  регистров – 
команды  индексной  арифметики.  Основные 
виды индексных операций следующие: 
•  засылка  в  соответствующий  индексный  регистр  начального  значения  ин-
декса; 
•  изменение индекса; 
•  проверка окончания циклических вычислений. 
Очень коротко рассмотрим последние два типа команд. 
Изменение индекса состоит в сложении (вычитании) значения индекса с фикси-
рованным приращением, производимым каждый раз при повторении цикла. Команда 
изменения  индекса  указывает  номер  индексного  регистра, а  также  значение и  знак 
(либо адрес) приращения. Если приращение всегда фиксировано и равно
, например, 
1 или L (длина слова в байтах), то используются команды с подразумеваемым опе-
рандом. 
Для проверки окончания  цикла используют или  обычную команду перехода по 
условию,  налагаемому в  этом  случае  на  какую-либо  переменную,  изменяющуюся  в 
процессе  вычислений,  или  специальные  команды "УП  по  счетчику" (УПС)  и "УП  по 
индексу" (УПИ). 
 
Условный переход по счетчику (УПС) 
Счетчиком служит обычно один из индексных регистров, в который перед нача-
лом  цикла загружается число  итераций  цикла. Возможная структура команды пока-
зана на рис. 5.21, а. 
 
 
В данном случае счетчик организован на индексном регистре R
1
. Пусть для ад-
ресации сегмента кодов команд используется базирование, тогда адрес АИ = (В) + D 
является адресом начала цикла. Команда УПС уменьшает содержимое регистра R
1
 
на 1 при каждой итерации цикла. В случае неравенства содержимого счетчика нулю 
((R
1
) ≠ 0) осуществляется переход на АИ, т.е. в начало цикла. Если (R
1
) = 0, то осу-
ществляется переход к команде, следующей по порядку за командой УПС, т.е. выход 
из цикла. 
 
Условный переход по индексу (УПИ) 
Возможная  структура  команды  показана  на  рис 5.21, б.  Пусть R
1
 – номер  ин-
дексного  регистра, а R
2
 – номер  регистра,  хранящего  приращение. Регистр, в кото-
ром хранится предельное значение индекса, имеет подразумеваемый адрес и, сле-
довательно, должен быть фиксированным для данного процессора. Пусть это будет 
регистр,  следующий  по  порядку  за  регистром,  хранящим  приращение,  т.е. R
3
.  Ко-
манда УПИ складывает содержимое регистров R
1
 и R
2
, помещает результат сложе-