Сегментация памяти

Память трактуется как одномерный массив байтов, каждый байт ассоциируется с двоичным адресом (номером), который называется физическим адресом.

Физический адрес – это 20-битовое беззнаковое целое от 0h до FFFFFh (метка h обозначает 16-ричную систему счисления), которое позволяет описать адресное пространство объемом 1 Мбайт.

Разрядность основного слова МП равна 2 Байта = 16 бит, поэтому для вычисления физического адреса используется выделение из адресного пространства сегментов по 64Кбайта (216), и в пределах сегмента можно определять адрес с помощью 16-битового кода.

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

Логический адрес представляет собой пару двухбайтовых беззнаковых целых чисел, разделенных двоеточием:

- начальный адрес сегмента (базовый),

- смещение (эффективный адрес), указывает расстояние в байтах от начала сегмента до адресуемого байта.

Например, могут быть указаны регистры, хранящие соответствующие коды

CS : IP

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

15 11 0

DS начальный адрес сегмента 0 0 0 0
+   15 0 смещение внутри сегмента
  19 0 физический адрес байта
       

 

Ячейка памяти – это неделимый в данной операции набор последовательных битов.