Индексный регистр

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Индексный регистр — регистр процессора в современных ЦПУ, используемый для автоматического изменения адреса операнда во время исполнения программы.

Общее назначение[править | править исходный текст]

Обычно индексный регистр используется для выполнения операций с индексными массивами.

Индексный регистр часто используется для косвенной адресации. Перед выполнением инструкции любая её часть, обычно адресная, может быть модифицирована прибавлением числа, содержащегося в индексном регистре. Например, исполнительный адрес в современном процессоре может формироваться как сумма базового, индексного и относительного адресов, хранящихся в индексном регистре.

Количество индексных регистров в ЦПУ может достигать нескольких десятков. Их быстродействие, обычно, на порядок выше быстродействия основной оперативной памяти. Индексный регистр повышают производительность ЦПУ, уменьшает объём программы, осуществляя автоматическую переадресацию одновременно с другими операциями.

Индексные регистры стали стандартной частью процессора во втором поколении компьютеров (примерно 1955-1964 годах).

Индексные регистры в процессорах архитектуры x86[править | править исходный текст]

В архитектуре x86 индексные регистры называются SI и DI. При базово-индексной адресации их содержимое может суммироваться с содержимым регистра BX.

Индексный регистр-источник SI применяется в качестве указателя адреса байта или слова в таких строковых командах, как LODS (загрузить строку), CMPS (сравнить строку), MOVS (переслать строку).

Индексный регистр-приёмник DI используется как указатель назначения для адреса байта или слова в строковых командах, таких как SCAS (сканировать строку), CMPS, MOVS, STOS (записать строку).

См.также[править | править исходный текст]