Программирование на JAVA

значение сдвигается на четыре позиции влево, вследствие чего получается 20-разрядный адрес памяти, представляющий собой начальный адрес сегмента. Для получения 2-разрядного исполнительного адреса к начальному адресу сегмента добавляется сгенериро­ванный процессором 16-разрядный исполнительный адрес, обозначенный на ри­сунке как смещение.

Чтобы локализовать в памяти сегмент, в сегментный регистр помещаются 16 старших разрядов 20-разрядного адреса начала этого сегмента. В адресном пространстве, занимающем 1 Мбайт и покрываемом 20-разрядными адресами, может располагаться 16 неперекрывающихся сегментов объемом 64 Кбайт. Одна­ко сегменты могут и перекрываться. Это удобно при организации совместного доступа к командам и данным разными программами. Сегменты CS и SS исполь­зуются в тех случаях, когда в программе имеются ссылки на команды или стек. Для хранения данных по умолчанию выделяется сегментный регистр DS. Если же для доступа к данным команды должен применяться регистр ES, в начало этой команды добавляется соответствующий код.


Рис. 9.6.1. Формирование адреса памяти в процессоре 8086

Защищенный режим

Процессоры архитектуры IA-32 обычно работают в защищенном режиме


<< назад вперед >>