ESI/SI (Source Index register) - индекс источника.
EDI/DI (Destination Index register) - индекс приёмника.
Регистрами общего назначения называются 32-битные регистры EAX, EBX, ECX, EDX, EBP, ESP, ESI и EDI. Данные регистры используются для хранения операндов логических и арифметических команд. Кроме того, они могут использоваться для хранения операндов при вычислении адресов (кроме регистра ESP, который не может быть использован как индексный операнд). Имена указанных регистров наследованы от имен регистров общего назначения процессора 8086 - AX, BX, CX, DX, BP, SP, SI и DI. В Таблице 2-1 показано, как можно адресовать младшие 16 бит регистров общего назначения процессора i486, используя имена регистров процессора 8086.
Каждый байт 16-битных регистров AX, BX, CX и DX также имеет свое имя. Байты этих регистров называются AH, BH, CH и DH (старшие байты) и AL, BL, CL и DL (младшие байты).
Таблица 2-1. Имена регистров +--------------------------------------------------------------+| 8 БИТ | 16 БИТ | 32 БИТА |+-------------------+----------------------+-------------------|| AL | AX | EAX || AH | | || BL | BX | EBX || BH | | || CL | CX | ECX || CH | | || DL | DX | EDX || DH | | || | SI | ESI || | DI | EDI || | BP | EBP || | SP | ESP |+--------------------------------------------------------------+ +--------------------------------------------------------------+| || Регистры общего назначения || || 31 23 15 7 0 16бит 32бита||+-----------------------++-----------++----------+
AH || AL | AX EAX ||+-----------+-----------|+-----------|+----------|
EIP | ||+------------------------------------------------+ || |+--------------------------------------------------------------+ Рисунок 2-5. Регистры, используемые прикладными программами Все регистры общего назначения могут использоваться для адресных вычислений и для получения результатов большинства арифметических и логических операций. Однако, некоторые команды используют фиксированные регистры для хранения операндов. Например, команды обработки строк используют в качестве операндов содержимое регистров ECX, ESI и EDI. Использование фиксированных регистров для некоторых операций позволяет более компактно кодировать набор команд. Следующие команды используют фиксированные регистры: умножение и деление с двойной точностью, ввод/вывод, обработка строк, перекодирование, цикл, сдвиг и циклический сдвиг, операции со стеком.