в сегментированной памяти задается двумя компонентами: базовым адресом сегмента и смещением в сегменте. В команде задается только смещение в сегменте. Количество сегментных регистров увеличилось на два (FS и GS). Изменилось и содержимое сегментных регистров. В МП IA-16 сегментные регистры содержат базовые адреса сегментов, а в МП IA-32 – селекторы сегментов.
Сегментные регистры в защищенном режиме дополняются 64-разрядными регистрами дескрипторов сегментов (рис. 3. 14) В системе не предусмотрено ни одной команды прямого обращения к ним. В этом смысле они программно невидимы. Это регистры аппаратных средств системы защиты программ от взаимных помех.
150
640
ESСелектор ES
Дескриптор сегмента ESДоп. сегмент данных
CSСелектор CS
Дескриптор сегмента CSСегмент кода
SSСелектор SS
Дескриптор сегмента SSСегмент стека
DSСелектор DS
Дескриптор сегмента DSСегмент данных
FSСелектор FS
Дескриптор сегмента FSДоп. сегмент данных
GSСелектор GS
Дескриптор сегмента GSДоп. сегмент данных
Сегментные
регистры
Регистры дескрипторов сегментов
Рис. 3. 14. Сегментные регистры
Назначение сегментных регистров в защищенном режиме осталось прежним: использование в процедуре трансляции адресов, но сама функция и содержимое этих регистров существенно изменились.
Селектор сегмента в защищенном режиме МП IA-32 – это указатель номера строки таблицы дескрипторов, в которой находится заданный дескриптор. Преобразование логического адреса в линейный (адрес плоской памяти) производится процедурой трансляции сегмента.
МП содержит 6 шестнадцатибитных сегментных регистров:
CS – сегмента кода,
SS – сегмента стека,
DS – сегмента данных,
ES – дополнительный сегмент данных,
FS – дополнительный сегмент да
Страницы: << < 26 | 27 | 28 | 29 | 30 > >>