Способы организации стековой памяти. Как организован стек в МП фирмы Intel?
Стр 1 из 2Следующая ⇒ Способы адресации, используемые в ЭВМ, их достоинства и недостатки. Непосредственная адресация. В адресном поле команды задается не адрес операнда, а непосредственно сам операнд. Например, sub bl, 25. Прямая адресация. В адресном поле команды задается адрес ячейки памяти. То есть в этом случае Аф = Ак. Например, mov [200h],al. Прямая адресация не дает возможности для организации циклов. Косвенная адресация. Адресный код задает регистр процессора. Содержимое этого регистра берется в качестве Аф. Например, add ax, [bx]. Косвенная адресация предоставляет программисту простую возможность организации циклов. Базовая адресация. Адресный код задает регистр процессора, откуда берется так называемый «базовый адрес», и некоторую величину, называемую смещением. Процессор вычисляет Аф путем сложения базового адреса со смещением. Например, add di, [si+100]. Базовая адресация удобна при работе с одномерными массивами. Базовый адрес при этом задает начальный адрес массива, а смещение указывает на элемент внутри массива. Кроме того, базовая адресация обеспечивает простую возможность перемещения программы в ОП без модификации этой программы. Базово-индексная адресация. Адресный код задает два регистра процессора и смещение. Процессор вычисляет Аф, складывая смещение и содержимое обоих регистров. Например, mov dx, [bp+si+2]. Такая адресация удобна при работе с двухмерными массивами. Организация тридцатидвухразрядных процессорах фирмы INTEL: режимы работы, привилегии, шлюзы. Процессор может работать в следующих режимах. 1. Реальный режим. С точки зрения пользователя, МП в этом режиме представляет из себя аналог МП 8086, только более быстрый и с расширенной системой команд. Механизм формирования физического адреса в реальном режиме аналогичен подобному механизму МП 8086:
Аф = (sr)×16+Аэф. Надо отметить, что сами процессы формирования Аф в 8086 и реальном режиме различны, а результат один и тот же. Так как сегментные регистры (sr) и Аэф 16-разрядные, то формируемый таким образом Аф будет 20-разрядным. Следовательно, в реальном режиме МП адресует 1Мбайт оперативной памяти (младший мегабайт 4-Гбайтного пространства памяти). Сегменты, как и в ВМ86 имеют фиксированный размер 64 Кбайта. 2. Режим виртуального 86-го процессора (V86). Этот режим предназначен для того, чтобы в защищенном режиме была возможность выполнять программы, написанные для ВМ86 (DOS-задачи). Работа процессора в этом режиме похожа на работу ВМ86, но сам режим V86 является подмножеством защищенного режима. 3. Режим SMM (system management mode – режим управления системой). Работа процессора в этом режиме «не видна» ни прикладным программам, ни даже операционной системе. Связано это с тем, что в этом режиме процессор адресует область памяти, недоступную в других режимах. Обычно в этом режиме процессор выполняет программу, написанную разработчиками аппаратуры. Чаще всего эта программа реализует системные функции пониженного энергопотребления. Попасть в режим SMM можно только по специальному внешнему аппаратному прерыванию SMI (system mode interrupt). Выход из режима SMM осуществляется специальной командой RSM (resume system mode). 4. Защищенный режим. В этом режиме раскрываются все возможности МП. В режиме используются все 32 адресных линии и может адресоваться память объемом до 4 Гбайт. Сегменты в защищенном режиме имеют переменный объем (1 байт 4 Гбайта). Одновременно МП может работать с 214 таких сегментов. Очевидно, что все сегменты могут не поместиться в реально существующей оперативной памяти (ОП), поэтому часть из них (а скорее всего большинство) находится на диске. Когда процессор обращается к сегменту, которого нет в ОП, происходит прерывание. Обработчик этого прерывания должен подка-чать с диска в ОП нужный сегмент, после чего происходит рестарт «виноватой» команды. От пользователя этот процесс скрыт и у него создается впечатление что в его распоряжении находится память объемом 64 Тбайта (214 сегментов по 4 Гбайта каждый, т.е. 246 байта). Такая память называется виртуальной (кажущаяся).
Возможно четыре уровня привилегий: 0,1,2 и 3, причем 0-й уровень самый старший. Уровень 3 (самый низкий) присваивается обычно сегментам пользователя, уровень 0 сегментам ОС, а уровни 1 и 2 предназначены для расширения ОС и на практике часто не используются.
Шлюзы бывают четырех типов. 1. Шлюз вызова. Может располагаться в таблицах GDT и LDT. Предназначен для вызова привилегированных подпрограмм. 2. Шлюз задачи. Может располагаться в GDT, LDT и IDT (interrupt descriptor table) (дескрипторная таблица прерываний). Предназначен для переключения на привилегированную задачу. 3. Шлюз прерываний. Может располагаться только в IDT. Служит для вызова обработчика внешнего прерывания. При переходе через этот шлюз флаг if сбрасывается в ноль, т.е. запрещаются внешние прерывания. 4. Шлюз ловушки. Может располагаться только в IDT. Служит для вызова обработчика внутреннего прерывания (особого случая). Практически аналогичен шлюзу прерываний, только внешние прерывания не запрещаются. способы организации стековой памяти. Как организован стек в МП фирмы Intel? Стек – это особый вид памяти. Если при обращении к обычной памяти необходимо задавать адрес ячейки, к которой производится обращение, то при обращении к стеку адрес задавать не надо. Различают два вида стеков: - стек, реализующий процедуру LIFO (last input-first output последним пришел – первым ушел); - стек, реализующий процедуру FIFO (first input-first output первым пришел – первым ушел). Стек, реализующий процедуру LIFO, организуется, как правило, на обычной оперативной памяти. В состав процессора вводится специальный регистр, называемый указателем стека. Его содержимое адресует ячейку ОП, которую принято называть вершиной стека. После любой стековой операции содержимое указателя стека изменяется, соответственно меняется и вершина стека. Например, в микропроцессорах фирмы Intel в качестве указателя стека используется регистр sp (esp). При выполнении команды push dx вначале из содержимого sp вычитается двойка и затем по полученному адресу в ОП записывается содержимое регистра dx. При выполнении команды pop bx в регистр bx выталкивается слово из вершины стека, а затем к sp прибавляется двойка. Стек, реализующий процедуру FIFO, обычно организуется аппаратным образом на регистрах.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|