Регистры данных (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). примером могут служить циклические операции со строками.
Назад... К оглавлению раздела Далее...
=== *** === *** === *** ===
Copyright © Юрий А. Денисов. 2000-2002 г.
В настоящее время проект закрыт (в версии 1.00.3 alpha). Автор приносит извинения за прекрашение разработки.