Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LK_MashZavYP_Akchurin_2011.pdf
Скачиваний:
236
Добавлен:
10.06.2015
Размер:
8.79 Mб
Скачать

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

Почему в обозначениях многих из регистров общего назначения присутствует наклонная разделительная черта? Это не разные регистры — это части одного большого 32-разрядного регистра, но их можно использовать в программе как отдельные объекты. Зачем так сделано? Чтобы обеспечить работоспособность программ, написанных для прежних 16-разрядных моделей процессоров фирмы

Intel начиная с i8086.

Многие из приведенных регистров предназначены для работы с определенны ми вычислительными подсистемами процессора: сопроцессором, MMXрасширениями. Поэтому их целесообразно рассматривать в соответствующем контексте.

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

3.4. Целочисленный процессор

При работе в защищенном режиме процессоры семейства lA-32 могут адресовать до 4 Гбайт оперативной памяти. Такой диапазон адресов определяется разрядностью внутренних регистров процессора. Поскольку регистры 32разрядные, в них могут храниться значения от 0 до 232 -1.

Регистрами называют участки высокоскоростной памяти, расположенные внутри ЦП и предназначенные для оперативного хранения данных и быстрого доступа к ним со стороны внутренних компонентов процессора. Например, при выполнении оптимизации циклов программы по скорости, переменные, к которым выполняется доступ внутри цикла, располагают в регистрах процессора, а не в памяти.

Структура основных программных регистров (Program execution registers) процессора семейства IA-32 и их названия, определенные специалистами фирмы

Intel.

112

Существуют:

8 регистров общего назначения,

регистр состояния процессора (или регистр флагов EFLAGS),

регистр указателя команд (EIP).

6 сегментных регистров,

Управляющие регистры

3.4.1. Регистры общего назначения (РОН)

Регистры EAX, EBX, ECX, EDX называют рабочими регистрами. Так как эти регистры физически находятся в микропроцессоре внутри арифметикологического устройства (АЛУ), то их еще называют регистрами АЛУ:

eax/ax/ah/al (Accumulator register) — аккумулятор. Применяется для хра-

нения промежуточных данных. В некоторых командах использование этого регистра обязательно.

ebx/bx/bh/bl (Base register) — базовый регистр. Применяется для хранения базового адреса некоторого объекта в памяти.

113

ecx/cx/ch/cl (Count register) — регистр-счетчик. Применяется в командах, производящих некоторые повторяющиеся действия. Его использование зачастую неявно и скрыто в алгоритме работы соответствующей команды.

К примеру, команда организации цикла loop кроме передачи управления команде, находящейся по некоторому адресу, анализирует и уменьшает на единицу значение регистра ecx/cx;

edx/dx/dh/dl (Data register) — регистр данных. Так же, как и регистр eax/ax/ah/al, он хранит промежуточные данные. В некоторых командах его использование обязательно; для некоторых команд это происходит неявно.

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

К некоторым 16-разрядным регистрам можно обращаться как к двум 8- разрядным регистрам. Например, регистр EAX является 32-разрядным, однако его младшие 16-разрядов находятся в регистре АХ. Старшие 8-разрядов регистра АХ находятся в регистре АН, а младшие 8-разрядов — в регистре AL.

В таблицах показаны особенности обращения к другим регистрам общего назначения, которые мы условно назвали основными и дополнительными

114

Особенности использования регистров. При выполнении команд процессором часть регистров общего назначения имеют особое значение.

Содержимое регистра ЕАХ автоматически используется при выполнении команд умножения и деления. Поскольку этот регистр обычно связан с выполнением арифметических команд, его часто называют расширенным ре-

гистром аккумулятора (extended accumulator).

Регистр ЕСХ автоматически используется процессором в качестве счетчика цикла.

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

32, 16 или 8 бит:

esi/si (Source Index register) — индекс источника. Этот регистр в цепочечных операциях содержит текущий адрес элемента в цепочке-источнике;

edi/di (Destination Index register) — индекс приемника (получателя). Этот регистр в цепочечных операциях содержит текущий адрес в цепочкеприемнике.

115

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]