Само название этих регистров говорит о том, что они выполняют специфические функции в системе. Использование системных регистров жестко регламентировано. Именно они обеспечивают работу защищенного режима. Их также можно рассматривать как часть архитектуры микропроцессора, которая намеренно оставлена видимой для того, чтобы квалифицированный системный программист мог выполнить самые низкоуровневые операции.
Системные регистры можно разделить на три группы:
1) четыре регистра управления;
В группу регистров управления входят 4 регистра:
– cr0;
– cr1;
– cr2;
– cr3;
2) четыре регистра системных адресов (которые также называются регистрами управления памятью);
К регистрам системных адресов относятся следующие регистры:
– регистр таблицы глобальных дескрипторов gdtr;
– регистр таблицы локальных дескрипторов Idtr;
– регистр таблицы дескрипторов прерываний idtr;
– 16-битовый регистр задачи tr;
3) восемь регистров отладки. К их числу относятся:
– dr0;
– dr1;
– dr2;
– dr3;
– dr4;
– dr5;
– dr6;
– dr7.
Знание системных регистров не является необходимым для написания программ на Ассемблере, в связи с тем, что они применяются, главным образом, для осуществления самых низкоуровневых операций. Однако в настоящее время тенденции в разработке программного обеспечения (особенно в свете значительно увеличившихся возможностей по оптимизации современных компиляторов высокоуровневых языков, зачастую формирующих код, превосходящий по эффективности код, созданный человеком) сужают область применения Ассемблера до решения самых низкоуровневых задач, где знание вышеозначенных регистров может оказаться весьма полезным.