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

Регистры общего назначения используются в программах для хранения:

· операндов логических и арифметических операций;

· компонентов адреса;

· указателей на ячейки памяти.

Все регистры этой группы позволяют обращаться к своим «младшим» частям. Использовать для самостоятельной адресации можно только младшие 16- и 8-битные части этих регистров. Старшие 16 битов этих регистров как самостоятельные объекты недоступны.

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

· EAX/AX/AH/AL (Accumulator register) – аккумулятор. Применяется для хранения промежуточных данных. В некоторых командах использование этого регистра обязательно;

· EBX/BX/BH/BL (Base register) – базовый регистр. Применяется для хранения базового адреса некоторого объекта в памяти;

· ECX/CX/CH/CL (Count register) – регистр-счетчик. Применяется в командах, производящих некоторые повторяющиеся действия (например команда организации цикла LООР, кроме передачи управления команде, находящейся по некоторому адресу, анализирует и уменьшает на единицу значение регистра ЕСХ).

· EDX/DX/DH/DL (Data register) – регистр данных. Так же как и регистр еах/AX/ah/al, он хранит промежуточные данные. В некоторых командах его использование обязательно; для некоторых команд это происходит неявно.

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

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

· EDI/DI (Destination Index register) – индекс приемника {получателя). Этот регистр в цепочечных операциях содержит текущий адрес в цепочке-приемнике.

Для работы со стеком в системе команд микропроцессора есть специальные команды, а в программной модели микропроцессора для этого существуют следующие специальные регистры:

· ESP/SP (Stack Pointer register) – регистр указателя стека. Содержит указатель вершины стека в текущем сегменте стека (регистр ESP не следует использовать явно для хранения каких-либо операндов программы, так как в нем хранится указатель на положение вершины стека программы);

· EBP/BP (Base Pointer register) – регистр указателя базы кадра стека. Предназначен для организации произвольного доступа к данным внутри стека.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: