Регистры общего назначения (РОНы) используются в программах как полностью, так и частями, например:
EAX
AX
AH
AL
EAX – это имя регистра используется для работы с полным регистром, в котором можно хранить 4 байта информации.
AX – это имя используется для работы с регистром в котором хранится 2 байта информации.
AH – имя однобайтового регистра, который называется старший байт регистра AX.
AL – имя однобайтового регистра, который называется младший байт регистра AX.
Назначение РОНов:
1. EAX/AX/AH/AL – Регистр-аккумулятор. Применяется для хранения промежуточных данных. В некоторых командах его использование обязательно.
2. EBX/BX/BH/BL – Базовый регистр. Применяется для хранения базового адреса некоторого объекта в памяти.
3. ECX/CX/CH/CL – Регистр-счетчик. Применяется в командах, производящих некоторые повторяющиеся действия.
4. EDX/DX/DH/DL – Регистр данных. Применяется как дополнительный аккумулятор для хранения промежуточных данных.
Следующие два регистра предназначены для поддержки так называемых цепочечных операций, то есть операций, производящих последовательную обработку цепочек элементов, каждый из которых может иметь длину 32, 16 или 8 бит. Эти регистры используются только в 4 байтовом и 2 байтовом формате.
5. ESI/SI – Регистр индекса источника. Применяется для хранения адреса элемента источника в цепочечных операциях.
6. EDI/DI – Регистр индекса приемника. Применяется для хранения адреса элемента приемника в цепочечных операциях.
В архитектуре ПК поддерживается специальная область памяти, которая называется Стек. Стек располагается в оперативной памяти и служит для хранения служебной информации при возникновении прерываний. Для работы со стеком в системе команд процессора есть специальные команды, а в процессоре для этого существуют специальные регистры. Особенность стековой памяти заключается в том, что в любой момент времени для чтения доступна только одна ячейка стека, которая записывалась последней. Эта ячейка называется вершина стека.
7. ESP/SP – Регистр указателя стека. Содержит адрес вершины стека в текущем сегменте стека.
8. EBP/BP – Регистр указателя базы стека. Применяется в тех случаях, когда требуется организовать произвольный доступ к данным внутри стека.