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

редактировать
Отображение индексного регистра на мэйнфрейме IBM 7094 с начала 1960-х.

Индекс регистр в CPU компьютера - это регистр процессора, используемый для изменения адресов операнда во время выполнения программы, обычно для выполнения vector / массив операций.

Содержимое индексного регистра добавляется (в некоторых случаях вычитается из) непосредственного адреса (того, который является частью самой инструкции), чтобы сформировать «эффективный» адрес фактических данных (операнда). Обычно предоставляются специальные инструкции для проверки индексного регистра и, если тест не удается, увеличивает индексный регистр на непосредственную константу и выполняет переходы, как правило, к началу цикла. Некоторые наборы инструкций позволяют использовать более одного индексного регистра; в этом случае дополнительные поля инструкций определяют, какие индексные регистры использовать. В то время как обычно процессоры, которые позволяют инструкции указывать несколько индексных регистров, складывают содержимое вместе, у IBM была линейка компьютеров, на которых содержимое было или было вместе.

В ранних компьютерах без какой-либо формы косвенного адресации, операции с массивами должны были выполняться путем изменения адреса инструкции, что требовало нескольких дополнительных программных шагов и использовало больше памяти компьютера, дефицитного ресурса в компьютерных установках ранней эпохи (а также в первых микрокомпьютерах два десятилетия спустя).

Содержание
  • 1 История
  • 2 Пример
  • 3 См. Также
  • 4 Примечания
  • 5 Ссылки
История

Индексные регистры, обычно известные как B-линия в ранних британских компьютерах, впервые были использованы в компьютере British Manchester Mark 1 в 1949 году. В целом индексные регистры стали стандартной частью компьютеров во втором поколении технологии, примерно в 1954 году. –1966. Большинство машин серии IBM 700/7000 мэйнфреймов имели их, начиная с IBM 704 в 1954 году, хотя они были необязательными на некоторых меньших машинах, таких как IBM 650 и IBM 1401.

Ранние "маленькие машины" с индексными регистрами включают AN / USQ-17, около 1960 года, и серию 9 из компьютеров реального времени из Scientific Data Systems, с начала 1960-х годов.

В то время как Intel 8080 допускал косвенную адресацию через регистр, первым микропроцессором с истинным индексным регистром, по-видимому, был Motorola 6800 и аналогичная MOS Technology 6502 хорошо использует два таких регистра.

Современные компьютерные разработки обычно не включают специальных индексных регистров; вместо этого они позволяют любому регистру общего назначения содержать адрес и позволяют добавлять к нему постоянное значение и, на некоторых машинах, содержимое другого регистра в качестве смещения для формирования эффективного адреса. Ранние компьютеры, разработанные таким образом, включают PDP-6 и IBM System / 360.

Пример

Вот простой пример использования индексного регистра в псевдокоде ассемблера. который суммирует массив из 100 записей 4-байтовых слов:

Clear_accumulator Load_index 400, index2 // загрузка 4 * размера массива в индексный регистр 2 (index2) loop_start: Add_word_to_accumulator array_start, index2 // Добавить в AC слово по адресу (array_start + index2) Branch_and_decrement_if_index_not_zero loop_start, 4, index2 // цикл уменьшается на 4, пока индексный регистр не станет нулевым
См. также
Примечания
Ссылки
Последняя правка сделана 2021-05-23 13:26:02
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте