Микропроцессор 8086 был выпущен фирмой Intel в 1978, а его модифицированный вариант 8088 с 8-разрядной шиной данных - в 1979 году. Дальнейшим развитием семейства явились микропроцессоры 80286 (1983 год), 80386 (1986 год) и 80486 (1990 год).
16-разрядный МП 80286 (или просто 286) разрабатывался с расчетом на многозадачную работу и увеличенный объем памяти. Так как должна была сохраниться его совместимость с 8086, то были введены два режима работы:
· реальный режим (как быстродействующий 8086);
· защищенный режим (с памятью до 16 Мбайт).
Для защищенного режима используются те же сегментные регистры CS, DS, ES и SS, но теперь они хранят не сегментные адреса, а селекторы сегментов - номера сегментов в специальной таблице дескрипторов сегментов (рис. 1.9).
Сегментный регистр ПАМЯТЬ
002 (селектор)
![]() |
Таблица дескрипторов сегментов
1
2
3 сегмент
.....
k N 2
![]() | |
![]() |
Дескриптор сегмента
![]() | ![]() | ||

/8/ /24/ /16/
Служ.разр База_сегмента Длина_сегмента
Рис.1.9. Принцип адресации данных в защищенном режиме 80286
Дескриптор сегмента хранит определяющую сегмент информацию - базовый адрес сегмента (24 разряда), длину сегмента (16 разрядов) и 8 служебных разрядов. Таким образом сегмент может начинаться с произвольного байта памяти общим объемом 2 24 = 16 Мбайт и иметь длину до 2 16 = 64 Кбайта.
Очевидно, что формирование адреса через таблицу дескрипторов, расположенную в памяти, потребует существенных дополнительных затрат времени. Поэтому в МП 80286 предусмотрены скрытые (теневые) регистры дескрипторов сегментов (рис. 1.10), в которых и
Сегментные регистры (расширение сегментных регистров)
![]() | ![]() |
CS
DS
SS
ES
i286: 15 0 47 40.39 /24/ 16.15 /16/ 0
GS
FS
i386: 15 0 63 53.52 /32/ 20.19 /20/ 0
Cлуж. сегментные регистры (Сл. разряды Базовый адрес сегмента Длина сегмента)
![]() | ![]() |
TR
LDTR
GDTR
IDTR
*) для i80286 регистры AX, BX, CX, DX и указатели SP, BP,
SI, DI и IP полностью соответствуют i8086;
**) для i80386/80486 регистры имеют 32 разряда (см. ниже).
Рис. 1.10. Сегментные регистры МП 80286 и 80386/486
размещаются дескрипторы рабочих сегментов. Их содержимое меняется автоматически при изменении селектора сегмента в каком-либо сегментном регистре (при явной загрузке или межсегментном переходе). При работе же с некоторым сегментом в течение длительного интервала замедления операций практически нет, так как в формировании физического адреса участвует базовый адрес из расширения сегментного регистра.
Для многозадачной работы предусмотрено разделение поля памяти между несколькими задачами (процессами), при этом считается, что в системе имеются:
· единственная глобальная таблица дескрипторов сегментов, доступных всем процессам;
· собственная у каждого процесса локальная таблица дескрипторов сегментов, принадлежащих только данному процессу.
На рис. 1.10 показаны дополнительные сегментные регистры GDTR, IDTR, LDTR и TR, предназначенные для хранения селекторов таблиц (сегментов) GDT, IDT, LDT_i и TSS_i, а также текущих значений их базовых адресов, длины и другой служебной информации.
Этот же подход был реализован и в МП 80386, который стал 32-разрядным микропроцессором (рис. 1.11).
AX EAX
AH AL
BX EBX
BH BL
CX ECX
CH CL
DX EDX
DL DL
SP ESP
![]() |
BP EBP
SI ESI
![]() |
DI EDI
![]() |
IP EIP
![]() |
EFLAGS
![]() |
PG ET TS EM PE GR0 (MSW)
бит защищенного (protect) режима
Рис. 1.11. Рабочие регистры ЦП 80386/486
Все рабочие регистры и регистры-указатели стали расширенными (Expanded), количество сегментных регистров увеличилось (добавлены GS и FS) и их расширение имело 64 разряда (Рис.1.10), так как под базовый адрес сегмента отведено 32 разряда, а длина сегмента задается двадцатью разрядами. Таким образом, сегмент может начинаться с произвольного байта памяти общим объемом 2 32 = 4 Гбайт и иметь длину до 2 20 = 1 Мбайта. Кроме того, в микропроцессоре аппаратно поддерживаются специальные схемы распределения памяти (страничная и сегментно-страничная), позволяющие выполнять программы, адресное пространство которых превышает объем реальной оперативной памяти компьютера.
Микропроцессор 80486 в концептуальном плане мало отличается от 80386, имея более высокое быстродействие за счет использования специальных аппаратных решений.