Программная модель МП-системы на основе процессора Pentium. Особенности организации памяти и допустимые способы адресации, страница 4

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

Регистры  ЕAХ, ЕВХ, ЕСХ, ЕDХ предназначены прежде всего для хранения данных и результатов арифметических и логических операций.

Регистры ЕSP, ЕBP, ЕSI, ЕDI используются, как правило, при формировании внутрисегментных смещений адресуемых операндов (их исполнительных адресов ЕА).

Указательные регистры ЕSP (SP), ЕBP (BP) хранят смещение в пределах текущего стекового сегмента. Регистр ЕSP выполняет функции указателя вершины стека. Его содержимое автоматически изменяется при выполнении команд с участием стека. Назначение этого регистра практически исключает его использование как регистра общего назначения.

31                        16  15           8  7               0

EAX

AH

AL

AX

EDX

DH

DL

DX

ECX

CH

CL

CX

EBX

BH

BL

BX       Базовые

EBP

BP

BP       регистры

ESP

SP

Указатель стека

ESI

SI

Индексные

EDI

DI

регистры

Регистры  общего  назначения, базовые и индексные регистры

31    22   21    20   19   18    17    16 15  14   13 12   11   10   9    8     7      6    5    4    3    2    1    0

Резерв

ID

VIP

VIF

AC

VM

R

0

NT

IOPL

OF

DF

IF

TF

SF

ZF

0

AF

0

PF

1

CF

Регистр признаков  EFLAGS

31                                     16  15                                         0

IP

EIP

Указатель  команд

Рис.  Основные  функциональные  регистры прикладной  архитектуры процессора Pentium

Индексные регистры ЕSI (SI), ЕDI (DI) при выполнении строковых команд хранят внутрисегментные смещения соответственно в текущем сегменте данных, определяемом селектором DS, и в текущем дополнительном сегменте, адресуемом с помощью селектора ES.  

В системе команд процессоров х86 имеется ряд команд, в которых регистры ЕAХ, ЕВХ, ЕСХ, ЕDХ используются для выполнения специальных функций и адресуются неявно, что дает выигрыш в длине команд.

Регистр ЕАХ (АХ) выполняет функции аккумулятора. С ним связаны операции умножения, деления, ввода-вывода, операции десятичной арифметики.

Регистр ЕВХ (ВХ) используется как указатель адреса при косвенной адресации. В 32‑разрядных режимах адресации при наличии постбайта адресации SIB в качестве указателей адреса при косвенной адресации также могут использоваться регистры ЕАХ, ЕСХ и ЕDХ.

Регистр СХ используется в качестве счетчика циклов в командах управления циклом или для задания числа повторений в командах строковых операций. Регистр СL определяет число сдвигов в командах сдвиговых операций.

Регистр ЕDХ (DХ) используется как расширитель аккумулятора в командах умножения и деления 32-битовых (16-битовых) слов. При умножении в этом регистре размещаются старшие 32 бита (16 бит)  64-разрядного (32-разрядного) результата, а при делении в регистре ЕDХ (DХ) формируется остаток. Кроме того, при реализации косвенной адресации к портам ввода-вывода в командах IN и OUT регистр DХ используется для хранения адреса порта.