Регистр процессора

Регистр процессора

Регистр процессора — блок ячеек памяти, образующий сверхбыструю оперативную память (СОЗУ) внутри процессора; используется самим процессором и большой частью недоступен программисту: например, при выборке из памяти очередной команды она помещается в регистр команд (англ.), к которому программист обратиться не может.

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

Существуют также так называемые регистры общего назначения (РОН), представляющие собой часть регистров процессора, использующихся без ограничения в арифметических операциях, но имеющие определенные ограничения, например в строковых. РОН, не характерные для эпохи мейнфреймов типа IBM/370[1] стали популярными в микропроцессорах архитектуры X86 — i8085, i8086 и последующих[2].

Специальные регистры[3] содержат данные, необходимые для работы процессора — смещения базовых таблиц, уровни доступа и т. д.

Часть специальных регистров принадлежит устройству управления, которое управляет процессором путём генерации последовательности микрокоманд.

Доступ к значениям, хранящимся в регистрах, как правило, в несколько раз быстрее, чем доступ к ячейкам оперативной памяти (даже если кеш-память содержит нужные данные), но объём оперативной памяти намного превосходит суммарный объём регистров (объём среднего модуля оперативной памяти сегодня составляет 1-4 Гб[4], суммарная «ёмкость» регистров общего назначения/данных для процессора Intel 80386 и более новых 32 битов * 8 = 256 бит).

Содержание

Архитектура x86

IP (англ. Instruction Pointer) — регистр, обозначающий смещение следующей команды относительно кодового сегмента.

IP — 16-битный (младшая часть EIP)

EIP — 32-битный аналог (младшая часть RIP)

RIP — 64-битный аналог

Сегментные регистры — регистры, указывающие на сегменты.

CS (англ. Code Segment), DS (англ. Data Segment), SS (англ. Stack Segment), ES, FS, GS

В реальном режиме работы процессора сегментные регистры содержат адрес начала 64Kb сегмента, смещенный вправо на 4 бита.

В защищенном режиме работы процессора сегментные регистры содержат селектор сегмента памяти, выделенного ОС.

CS — указатель на кодовый сегмент. Связка CS:IP (CS:EIP/CS:RIP — в защищенном/64-битном режиме) указывает на адрес в памяти следующей команды.

Регистры данных — служат для хранения промежуточных вычислений.

RAX, RCX, RDX, RBX, RSP, RBP, RSI, RDI, R8 — R15  — 64-битные

EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI, R8D — R15D  — 32-битные (extended AX)

AX, CX, DX, BX, SP, BP, SI, DI, R8W — R15W — 16-битные

AH, AL, CH, CL, DH, DL, BH, BL, SPL, BPL, SIL, DIL, R8B — R15B — 8-битные (половинки 16-ти битных регистров)

например, AH — high AX — старшая половинка 8 бит

AL — low AX — младшая половинка 8 бит

RAX RCX RDX RBX
EAX ECX EDX EBX
AX CX DX BX
AH AL CH CL DH DL BH BL


RSP RBP RSI RDI Rx
ESP EBP ESI EDI RxD
SP BP SI DI RxW
SPL BPL SIL DIL RxB

где x — 8..15.
Регистры RAX, RCX, RDX, RBX, RSP, RBP, RSI, RDI, Rx, RxD, RxW, RxB, SPL, BPL, SIL, DIL доступны только в 64-битном режиме работы процессора.

Регистр флагов FLAGS (16 бит) / EFLAGS (32 бита) / RFLAGS (64 бита) — содержит текущее состояние процессора.

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

  • С последовательным приёмом и выдачей информации — сдвиговые регистры.
  • С параллельным приёмом и выдачей информации — параллельные регистры.

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

По назначению регистры различаются на:

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

Счётчик команд

IP

IP (англ. Instruction Pointer) — регистр, содержащий адрес-смещение следующей команды, подлежащей исполнению, относительно кодового сегмента CS в процессорах семейства x86.

Регистр IP связан с CS в виде CS:IP, где CS является текущим кодовым сегментом, а IP — текущим смещением относительно этого сегмента.

Регистр IP является 16-разрядным регистром-указателем. Кроме него, в состав регистров этого типа входят SP (англ. Stack Pointer — указатель стека) и BP (англ. Base Pointer — базовый указатель).

Принцип работы

Например, CS содержит значение 2CB5[0]H, в регистре IP хранится смещение 123H.

Адрес следующей инструкции, подлежащей исполнению, вычисляется путем суммирования адреса в CS (сегменте кода) со смещением в регистре IP:

2CB50H + 123H = 2CC73H

Таким образом, адрес следующей инструкции для исполнения равен 2CC73H.

При выполнении текущей инструкции процессор автоматически изменяет значение в регистре IP, в результате чего регистровая пара CS:IP всегда указывает на следующую подлежащую исполнению инструкцию.

EIP

Начиная с процессора 80386 была введена 32-разрядная версия регистра-указателя — EIP. В данном случае IP является младшей частью этого регистра (первые 16 разрядов). Принцип работы EIP в целом схож с работой регистра IP. Основная разница состоит в том, что в защищённом режиме, в отличие от реального режима, регистр CS является селектором (селектор указывает не на сам сегмент в памяти, а на его дескриптор сегмента в таблице дескрипторов).

RIP

Структура регистра RIP.gif

В 64-разрядных процессорах используется свой регистр-указатель инструкций — RIP.

Младшей частью этого регистра является регистр EIP.

На основе RIP в 64-разрядных процессорах введён новый метод адресации RIP-relative. В остальном работа RIP аналогична работе регистра EIP.

См. также

Примечания

  1. Barbara J. Burian Программирование на языке ассемблера системы IBM/370 упрощённый подход = A simple approach to S/370 assembly language programming. — New Jersy: Prentice-Hall, Inc, 1977.
  2. Погорелый С. Д., Слободянюк Т. Ф. Программное обеспечение микропроцессорных систем. Справочник. — 2-е, переработанное и дополненное. — К: Тэхника, 1989. — С. 7, 48-51. — 301 с. — (Справочник специалиста). — 50 000 экз. — ISBN 5-335-00169-0
  3. Intel 64 and IA-32 Architectures Software Developer’s Manual. Volume 1: Basic Architecture. 3.4 BASIC PROGRAM EXECUTION REGISTERS (англ.)
  4. Статистика объёма оперативной памяти ПК, используемых для игр



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Регистр процессора" в других словарях:

  • регистр процессора — Память процессора, предназначенная для хранения основных или промежуточных данных либо их частей и используемая для выполнения машинных команд [Источник] Тематики информационные технологии в целом EN processor register …   Справочник технического переводчика

  • Аккумулятор (регистр процессора) — У этого термина существуют и другие значения, см. Аккумулятор (значения). Аккумулятор (регистр процессора) регистр, в котором сохраняются непосредственные результаты выполнения арифметических и логических команд. Альтернативными методами для… …   Википедия

  • Регистр флагов — Регистр флагов  регистр процессора, отражающий текущее состояние процессора. Содержание 1 Архитектура x86 1.1 Флаги состояния 1.2 Управляющий флаг …   Википедия

  • Регистр — Регистр: В Викисловаре есть статья «регистр» Регистр (цифровая техника)  последовательное или параллельное логическое …   Википедия

  • Регистр (вычислительная техника) — Регистр процессора  сверхбыстрая память внутри процессора, предназначенная прежде всего для хранения промежуточных результатов вычисления (регистр общего назначения/регистр данных) или содержащая данные, необходимые для работы процессора … …   Википедия

  • регистр общего назначения — РОН — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] регистр общего назначения универсальный регистр общий регистр Регистр процессора, доступный программам и используемый ими для временного… …   Справочник технического переводчика

  • РЕГИСТР КОМПЬЮТЕРА — Специализированная ячейка памяти, входящая в состав процессора. Регистры выполняют функции кратковременного хранения и преобразования данных или команд. На физическом уровне регистр представляет собой совокупность триггеров, способных хранить… …   Словарь бизнес-терминов

  • Регистр (в вычислит. технике) — Регистр ЦВМ, часть памяти вычислительной машины обычно ёмкостью в одно машинное слово, предназначенная для запоминания (а иногда также и для преобразования) кодов. В каждой ЦВМ имеются наборы Р. различного назначения, например Р. центрального… …   Большая советская энциклопедия

  • Регистр (цифровая техника) — У этого термина существуют и другие значения, см. Регистр. 4 х разрядный сдвиговый регистр, преобразователь последовательного кода в параллельный и обратно Регистр последовательное или параллельное …   Википедия

  • Регистры процессора — Регистр процессора  сверхбыстрая память внутри процессора, предназначенная прежде всего для хранения промежуточных результатов вычисления (регистр общего назначения/регистр данных) или содержащая данные, необходимые для работы процессора … …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»