Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпорки_2.docx
Скачиваний:
9
Добавлен:
09.02.2015
Размер:
874.63 Кб
Скачать

Вопрос №16

Идея защищенного режима – защитить исполняемые процессором программы от взаимного влияния.

Организация защиты программ по доступу к памяти не нарушает принцип сегментации. Каждому из сегментов присваиваются определенные атрибуты:

  1. расположение сегментов памяти

  2. размер сегмента

  3. уровень привилегий, то есть права данного сегмента относительно других сегментов.

  4. Тип доступа, то есть определяется назначение сегмента

В отличие от реального режима в защищенном режиме программа уже не может напрямую обратиться к любому физическому адресу. Ключевым объектом защищенного режима является специальная структура - дескриптор сегмента.

Limit1,limit2 – 20разрядное поле, определяющее размер сегмента.

Base1,base2,base3 – 32разрядное поле, определяющее значение линейного адреса начала сегмента памяти.

AR– байт, поля которого определяют право доступа к сегменту.

В защищенном режиме размер сегмента не фиксирован, его расположение можно задать в адресах. Размер сегмента может достигать до 4 Гб.

Бит G– бит.

G=0 – размер сегмента в байтах

1 – в страницах.

Вопрос №17

Стек – область памяти, специально выделяемая для временного хранения данных в программе. Для работы со стеками предназначено 3 регистра:

SS– регистр сегмента стека

SP/ESP– регистр-указатель стека

ВР/ЕВР – регистр указателя базы кадра стека

В каждый момент времени доступен только один стек, адрес сегмента которого содержится в регистре SS. Этот стек называется текущим. Для обращения к другому стеку необходимо загрузить в регистрSSдругой адрес.

Работа со стеком:

  1. запись и чтение данных осуществляется по принципу LIFO–lastinputfirstout.

  2. По мере записи данных в стек он растет в сторону младших адресов.

  3. При использовании регистров SP/ESР для адресации памяти ассемблер автоматически считает, что содержащиеся в нем значения представляют смещение относительно регистраSS.

Регистр SP/ESPуказывает вершину стека, то есть содержит смещение, по которому в стек был занесен последний элемент. Если стек пуст, то значениеTSPравно адресу последнего байта сегмента, выделенного под стек. При занесении элементов в стек процессор уменьшает значениеESP, а затем записывает элемент по адресу новой вершины. При извлечении данных из стека процессор копирует элемент, расположенный по адресу вершины, затем увеличивает значение регистраESP. Для доступа к элементам внутри стека используется регистрEВP.

Вопрос №18

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

  1. PUSHвыполняет запись в вершину стека

Рush<источник>

Алгоритм работы PUSH:

1.SP=SP– 2

2.Значение источника записывается по адресу, указанному парой SS:SP

  1. РОР выполняет запись значения из вершины стека по месту указанного операнда:

Рор <приемник>

Алгоритм работы РОР:

    1. запись содержимого вершины стека по месту, указанному операндом

    2. увеличение значения SP:SP=SP+ 2

Работать со стеком приходиться постоянно. Основные виды операций, когда использование стека неизбежно:

  1. вызов подпрограмм

  2. временное сохранение значение регистра (при обработке внешнего прерывания)

  3. определение локальных переменных в процедуре.

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