Как следует из названия, пользовательскими регистры называются потому, что программист может использовать их при написании своих программ. К этим регистрам относятся (рис. 1):
- восемь 32-битных регистров, которые могут использоваться программистами для хранения данных и адресов (их еще называют регистрами общего назначения (РОН)):
- eax/ax/ah/al;
- ebx/bx/bh/bl;
- edx/dx/dh/dl;
- ecx/cx/ch/cl;
- ebp/bp;
- esi/si;
- edi/di;
- esp/sp.
- шесть регистров сегментов: cs, ds, ss, es, fs, gs;
- регистры состояния и управления:
- регистр флагов eflags/flags;
- регистр указателя команды eip/ip.
Рис. 1. Пользовательские регистры микропроцессоров i486 и Pentium
Почему многие из этих регистров приведены с наклонной разделительной чертой? Нет, это не разные регистры — это части одного большого 32-разрядного регистра. Их можно использовать в программе как отдельные объекты. Так сделано для обеспечения работоспособности программ, написанных для младших 16-разрядных моделей микропроцессоров фирмы Intel, начиная с i8086. Микропроцессоры i486 и Pentium имеют в основном 32-разрядные регистры. Их количество, за исключением сегментных регистров, такое же, как и у i8086, но размерность больше, что и отражено в их обозначениях — они имеют приставку e (Extended).
Разберемся подробнее с составом и назначением пользовательских регистров.