D.4.1. Регистры данных

Регистры данных (Data Register) применяется для хранения промежуточных данных, участвуют в арифметических и логических операциях процессора. Аккумулятор, базовые и индексные регистры также можно использовать в качестве регистров данных.

В некоторых процессорах (например, в процессорах больших ЭВМ IBM 360/370, CISC-процессорах Motorola) все регистры данных равноправны и могут одинаково участвовать во всех операциях процессора. В процессорах Motorola даже стирается различие между адресными регистрами и регистрами данных! Однако с усложнением микропроцессоров специализация их системных регистров усилилась. Поэтому в современных микропроцессорах выделяются следующие типы регистров данных.

Аккумулятор (Accumulator) – это регистр, который применяется для хранения промежуточных результатов вычисления. Именно его предпочтительно выбирать в качестве хранения результата действия арифметической и логической операции. Он содержит первый множитель или делимое в операциях умножения/деления. при этом многие операции с участием этого регистра (не обязательно умножение и деление) часто выполняется быстрее [В.Л. Григорьев. Микропроцессор i486. Архитектура и программирование.//М.: "МИКАП", 1993 г. – стр. 14]. Он называется "аккумулятором" потому, что он как бы "накапливает" (аккумулирует) результаты вычислений перед их посылкой в память компьютера.

Счетчик повторений (Counter). Этот регистр участвует в качестве счетчика для некоторых команд (сдвига, манипулирования со строками, цепочками, организации циклов и повторений.) Подробнее смотри [А.В. Нестеренко. ЭВМ и профессия программиста./М.: Просвещение, 1990.]

Регистр "вершины стека" присутствует в CISC-процессорах Motorola. Содержимое этого регистра синхронизируется с вершиной стека микропроцессора, расположенного в оперативной памяти. Вообще использование стека в CISC-процессорах компенсирует небольшое количество регистров в них, и является общепринятым. Таким образом существуют отдельные операции извлечения из стека и записи в стек. Подробнее об операциях со стеком смотри раздел D.4.2.

Индексные регистры (Index register) участвуют в операциях с индексной адресацией. Под этими операциями понимают те, в которых адрес элемента в памяти вычисляется, например, по правилу: <база>+<содержимое индексного регистра>*<длина элемента данных>. Эта адресация используется при операциях с массивами, строками и другими линейно-упорядоченными объектами (то есть объектами однотипных данных, расположенных в памяти "подряд"). При некоторых операциях различают индекс источника (Source Index) и индекс получателя, или приемника (Destination Index). примером могут служить циклические операции со строками.

 

Назад...   К оглавлению раздела   Далее...

=== *** === *** === *** ===

В настоящее время проект закрыт (в версии 1.00.3 alpha). Автор приносит извинения за прекрашение разработки.