Сегментные регистры

Опубликовано в Архитектура процессора Intel

  • CS — Code Segment (сегмент кода — машинной программы),
  • SS — Stack Segment (сегмент стека),
  • DS — Data Segment (сегмент данных),
  • ES — Extra Segment (дополнительный сегмент).

Сегментные регистры

Обратите внимание, что цена на лендинг пейдж формируется в зависимости от Ваших задач. Компания Smartlanding каждый день работает не только над разработкой лендингов, но и над улучшением качества услуг, и оптимизацией издержек.

Сегментные регистры используются для аппаратной поддержки простейшей модели сегментированной памяти, принятой в процессоре 8086. Их содержимое определяет базовые (начальные) адреса соответствующих сегментов в физической памяти.

Сегментные регистры

Использование четырех сегментных регистров предполагает, что в любой момент времени программа может работать (иметь доступ) с четырьмя сегментами памяти. С учетом того, что длина каждого сегмента составляет 216 байт = 64 Кбайт (16-разрядный адрес) физическое адресное пространство, доступное программе, составляет 256 Кбайт.

Шина адреса процессора Intel 8086 является 20-разрядной, что обеспечивает емкость адресного пространства 1 Мбайт. При формировании 20-разрядного физического адреса, содержимое соответствующего сегментного регистра смещается в сторону старших разрядов путем сдвига на четыре разряда влево.

Таким образом, содержимое сегментных регистров представляет собой не сам физический начальный адрес сегмента, а его значение, уменьшенное на 16 (сегменты выровнены в памяти на границу параграфа).

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

Например, на этапе выборки команды по умолчанию привлекается регистр CS, при обращении к стеку — регистр SS. При обращении за операндом или при записи результата — регистр DS.