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

32-битные регистры БАХ (аккумулятор), БВХ (база), БСХ (счетчик), EDX

(регистр данных) могут использоваться без ограничений для любых целей - вре­менного хранения данных, аргументов или результатов различных операций. На­звания регистров происходят от того, что некоторые команды применяют их спе­циальным образом: так, аккумулятор часто необходим для хранения результата действий, выполняемых над двумя операндами, регистр данных в этих случаях получает старшую часть результата, если он не умещается в аккумулятор, регистр-счетчик работает как счетчик в циклах и строковых операциях, а регистр-база -при так называемой адресации по базе. Младшие 16 бит каждого из этих регист­ров применяются как самостоятельные регистры с именами АХ, ВХ, СХ, DX. На самом деле в процессорах 8086-80286 все регистры были 16-битными и называ­лись именно так, а 32-битные ЕАХ - EDX появились с введением 32-битной ар­хитектуры в 80386. Кроме этого, отдельные байты в 16-битных регистрах АХ -DX тоже могут использоваться как 8-битные регистры и иметь свои имена. Стар­шие байты этих регистров называются АН, ВН, СН, DH, а младшие - AL, BL, CL, DL (см. рис. 3).

Остальные четыре регистра - ESI (индекс источника), EDI (индекс приемни­ка), ЕВР (указатель базы), ESP (указатель стека) - имеют более конкретное на­значение и применяются для хранения всевозможных временных переменных.

Регистры ESI tfEDI необходимы в строковых операциях, ЕВР и ESP - при рабо­те со стеком (см. раздел 2.1.3). Так же как и в случае с регистрами ЕАХ - EDX, младшие половины этих четырех регистров называются SI, DI, BP и SP соот­ветственно, и в процессорах до 80386 только они и присутствовали.

АХ

ЕАХ

 

АН

AJL

31

16

15 .

8 7 ВХ

 

0

ЕВХ

 

ВН

BL

 

 

 

 

сх

 

 

ЕСХ

 

СН

CL

 

 

 

 

DX

 

 

EDX

 

DH

DL

 

 

 

 

 

 

 

 

ESI

 

SI

 

 

 

 

 

 

 

 

EDI

 

DI

 

 

 

 

 

 

 

 

ЕВР

 

ЗР

 

 

 

 

 

 

 

 

ESP

 

SP

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

Процессоры Intel в реальном режиме