Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPT_otvety_na_ekzamen.docx
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
416.51 Кб
Скачать
  1. Принцип формирования линейных адресов в реальном режиме работы мп семейства х86:

В МП 8086, а также при реальном режиме работы (R-режиме) всех последующих моделей процессоров семейства х86, определены четыре типа сегментов: сегмент кода (CS), где размещаются программы; сегмент стека (SS), для запоминания стековых данных и два сегмента данных, основной (DS) и дополнительный (ES). При этом все сегменты имеют один и тот же размер – 64Кбайта. Для того, чтобы определить начальные адреса этих сегментов во всём используемом адресном пространстве 1 мегабайт, необходим 20 разрядный физический адрес. Старшие 16 разрядов этого адреса размещаются в соответствующем сегментном регистре (CS, DS, SS, ES). Младшие 4 разряда этих адресов подразумеваются равными нулю. Следовательно, размещение указанных сегментов в адресном пространстве может осуществляться с дискретностью 16 байт.

Местоположение же в данном сегменте адресуемой ячейки памяти (байта), т.е. расстояние ее от начального адреса этого сегмента, которое называется смещением в сегменте, по умолчанию определяется:

  1. В кодовом сегменте – содержимым регистра указателя инструкций IP.

  2. В сегментах данных – указывается в команде: либо некоторой константой, при прямой адресации; либо содержимым одного из индексных регистров (SI, DI), при операциях со строками, или так называемым эффективным адресом EA (при косвенной адресации). Последний, в общем случае, может являться суммой трех составляющих: содержимого базового регистра BX или BP, одного из индексных регистров SI или DI, а также некоторой константы (смещения в команде). Причем, некоторые из них могут при этом отсутствовать.

  3. В сегменте стека – определяется в большинстве случаев содержимым регистра указателя стека (SP). Однако, если при формировании эффективного адреса EA, вместо регистра BX используется регистр BP, то автоматически адресуется сегмент стека SS, а не сегмент данных DS. При этом, принцип стека «первый пришел – последний вышел» игнорируется, и ячейки стекового сегмента рассматриваются как ОЗУ с произвольной выборкой.

Следует, однако, отметить, что в ряде случаев, пользуясь так называемыми префиксами замены сегментов, можно изменить сегмент, заданный по умолчанию, для которого в команде указано внутрисегментное смещение. Но это не касается сегментов CS, SS и ES.

Формирование 20-ти разрядного физического адреса из логического (виртуального), т.е. из совокупности 16 разрядного указателя начального адреса сегмента (расположенного в сегментном регистре) и 16 разрядного смещения в сегменте осуществляется следующим образом. Указатель начального адреса сегмента выбирается из соответствующего регистра, сдвигается на 4 двоичных разряда влево (т.е. умножается на 16), образуя собственно начальный адрес сегмента, и суммируясь со смещением в сегменте, указанном в команде, образует физический адрес задаваемой ячейки памяти (см. рис III.1).

Обязательный сдвиг 16-разрядного указателя начального адреса сегмента дает возможность адресовать сегменты в любой точке адресного пространства в 1Мбайт, однако, при этом, создает дискретность в их задании по адресному пространству, равную 16 байтам.

Такая простая сегментация адресного пространства позволила использовать адресное пространство в 1Мбайт, с помощью 16 разрядных адресов, указываемых в команде. Однако она имеет и существенные недостатки, которые усложняют разработку мультизадачных систем. Они заключаются в следующем.

  1. Сегменты памяти определяются только сегментными регистрами и описываются всего двумя атрибутами: начальным адресом и максимальным размером, равным 64Кбайт.

  2. Размещение сегментов в памяти произвольно: сегменты могут пересекаться частично или полностью.

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

Рис.III.1 Формирование физического адреса МП семейства х86 в

реальном режиме работы (R-режиме).

Для устранения этих недостатков в МП семейства х86 дальнейших типов был введен, так называемый, защищенный режим работы процессора или P – режим. При этом режиме, в процессорах имеются гибкие средства организации сегментов с большим числом атрибутов и эффективные механизмы контроля и защиты доступа к сегментам. Однако поместить всю эту информацию в одном 16 разрядном сегментном регистре было просто невозможно. Поэтому для ее размещения были введены специальные 8 байтные структуры данных, названные дескрипторами, которые полностью описывали соответствующие сегменты. А обращение к этим дескрипторам осуществлялось через соответствующие сегментные регистры, содержимое которых, в этом случае, получило название селекторов. Поэтому, прежде чем рассматривать принципы формирования физического адреса в процессорах семейства Х86 в защищенном режиме работы, посмотрим, какие сегменты памяти определены в этом режиме, и каковы структуры дескрипторов, описывающих эти сегменты.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]