Процессоры содержит программно доступные регистры, которые принято объединять в три группы:
- регистры данных,
- регистры указатели,
- сегментные регистры.
Кроме того, в состав процессора входят счетчик команд и регистр флагов. В защищенном режиме добавляются регистры системных адресов, отладочные регистры.
Разрядность регистров зависит от разрядности процессора: 8086 и 80286 - 16-и разрядные, 80386, 80486 и Pentium - 32-х разрядные. Содержимое 16-и разрядного регистра называют словом (два байта), 32-х разрядного регистра двойным словом (четыре байта). Современные процессоры Intel имеют и 64-х разрядные регистры.
Регистры данных (или регистры общего назначения):
Регистры указатели:
Сегментные регистры:
Далее показаны и регистры процессоров поддерживающих 64-х битную архитектуру:
Счетчик команд:
В Счетчике команд процессора (регистре команд, указателе команд) аппаратно формируется адрес очередной выбираемой команды.
Регистр флагов:
Регистр флагов эквивалентен регистру состояния процессора других систем. Он содержит информацию о текущем состоянии процессора:
VM (бит 17) - обеспечивает режим виртуального 8086 в защищенном режиме;
RF (бит 16) - флаг возобновления, временно прекращает отладку, возвращая процессор к нормальному выполнению программы;
NT (бит 14) - вложенная задача, процессор использует этот флаг для управления последовательностью прерываемых и вызываемых задач;
IOPL (биты 13-12) - уровень привилегий ввода-вывода, используется в защищенном режиме;
OF (бит 11) - флаг переполнения, устанавливается, если операция привела к переносу (заему) в знаковый (самый старший) бит результата, но не привела к переносу (заему) из самого старшего бита, или наоборот;
DF (бит 10) - флаг направления, показывает должны ли регистры ESI и EDI инкрементироваться или декрементироваться во время операций над строками. Если флаг сброшен они инкрементируются, иначе - декрементируются;
IF (бит 9) - разрешение прерываний, очистка этого бита запрещает процессору реагировать на внешние маскируемые прерывания;
TF (бит 8) - флаг ловушки, установка флага переводит процессор в пошаговый режим для отладки;
SF (бит 7) - флаг знака, устанавливается если есть 1 в старшем бите результата;
ZF (бит 6) - флаг нуля, устанавливается если все биты результата равны 0;
AF (бит 4) - флаг вспомогательного переноса, используется для упрощения сложения и вычитания упакованных двоично-десятичных чисел. Независимо от длины операнда (8, 16 или 32 бита) флаг AF установлен, если операция привела к заему из бита 3 при вычитании или переносу из бита 3 при сложении, иначе он сброшен. Это связано с тем, что двоично-десятичные числа используют биты с 0 по 3 для представления десятичных цифр;
PF (бит 2) - флаг четности, устанавливается если младшие восемь бит результата содержат четное число единиц (проверка на четность);
CF (бит 0) - флаг переноса, устанавливается если операция привела к переносу из старшего бита при сложении или к заему в старший бит при вычитании.