logo
госник_150900_шпоры2

8 Адресация оперативной памяти. Сегментные регистры.

При использовании сегментированных моделей памяти для формирования любого адреса нужны два числа – адрес начала сегмента и смещения искомого байта относительно этого числа. Операционные системы могут размещать сегменты, с которыми работает программа пользователя, в разных местах памяти и даже временно записывать их на диск, если памяти не хватает. Существует шесть 16-битных регистров: CS, DS, ES, FS, GS, SS, используемых для хранения селекторов.

DS, ES, FS, GS называются регистрами сегментов данных. CS – отвечает за сегмент кода. SS - отвечает за сегмент стека.

CS содержит программу, исполняющуюся в данный момент, следовательно, запись нового селектора в этот регистр приводит к тому, что далее будет исполнена не следующая по тексту программы команда, а команда из когда, находящегося в другом сегменте, с тем же смещением. Смещение очередной выполняемой команды всегда хранится в специальном регистре EIP.