
- •Трансляция программы
- •Компоновка программы
- •Система команд микропроцессора
- •32 Разрядные регистры:
- •Целочисленные арифметические команды
- •Особенности реализации микропроцессоров
- •Регистры: пользовательские и системные
- •Программа на языке ассемблера
- •Цепочечные команды
- •Осуществление переходов
- •Счётчик адреса команд
- •Безусловные переходы
- •Команда безусловного перехода jmp
- •Защищённый режим работы микропроцессора
- •Регистры управления
- •Регистры системных адресов
- •Сложные структуры данных
- •Доступ к элементам массива
- •Двумерные массивы
- •Структура
- •Сложные структуры данных 2
- •Методы работы со структурой
- •Объединение
- •Модульное программирование -1
- •Технологии программирования
- •Процедуры в языке ассемблера
- •Модульное программирование – 2 Передача аргумента через регистр
- •Передача аргументов через общую область памяти
- •Передача аргументов через стек
- •Связь ассемблера с языками высокого уровня
- •Макросредства языка ассемблера
- •Создание Windows приложений на ассемблере
- •Процесс производства микропроцессора
Регистры управления
В группу регистров управления входит 5 регистров: От cr0 до cr4 – эти регистры предназначены для общего управления системой. Регистры управления доступны только программам с уровнем привилегий «0».
Хотя микропроцессор имеет 5 регистров управления, доступны только 4. Исключается регистр cr1, так как его функции пока не определены, и он зарезервирован для будущего использования.
Регистр cr0 содержит системные флаги, управляющие режимами работы микропроцессора, и отражающие его состояние глобально, независимо от конкретных выполняющихся задач.
Назначения системных флагов:
pe – разрешение защищённого режима. Состояние флага показывает в каком из 2 режимов реально (pe = 0) или защищённо (pe = 1) работает микропроцессор в данный момент времени.
Mp – флаг наличия сопроцессора. Всегда равен «1»
Ts - Переключение задач. Процессор автоматически устанавливает этот бит при переключении на выполнение другой задачи.
Am – маска выравнивания. Этот бит разрешает при (am = 1) или запрещает (am = 0) контроль выравнивания
Cd – запрещение кэш-памяти. С помощью этого бита можно запретить или разрешить использование кэш-памяти 1-го уровня (L1).
Pg – разрешение (1) или запрещение (0) страничного преобразования.
Регистр cr2 используется при страничной организации оперативной памяти. Для регистрации ситуации, когда текущая память обратилась по адресу к странице памяти, отсутствующей в данный момент. В такой момент в микропроцессоре возникает исключительная ситуация и линейный 32-битный адрес команды вызвавший это исключение, записывается в регистр cr2. Имея эту информацию, обработчик исключений определяет нужную страницу, осуществляет её подкачку в память и возобновляет нормальную работу.
Регистр cr3 так же используется при страничной организации памяти. Это регистр каталога страниц первого уровня. Он содержит 20-битный физический базовый адрес каталога страниц текущей задачи.
Регистр cr4 содержит признаки, в основном разрешительного характера, который характеризуют те или иные архитектурные элементы.
Регистры системных адресов
Эти регистры называются регистрами управления памятью. Они предназначены для защиты программ и данных в мульти задачном режиме работы микропроцессора. При работе в защищённом режиме. Адресной пространство делится на глобальное и локальное.
В защищённом режиме запрос к памяти как со стороны операционные системы, как и со стороны прикладные программ должен быть санкционирован.
Микропроцессор аппаратное контролирует доступ программ к любому адресу в оперативной памяти. Для получения доступа целевой адрес, к которому хочет получить доступ программа, должен быть для неё описан. Это означает, что участок физической памяти, содержащий нужный адрес, должен быть описан с помощью некоторого дескриптора сегментов. В программе, которая хочет использовать данные участки, должен быть сообщён указатель на соответствующий дескриптор в одной из дескрипторных страниц.
В защищённом режиме меняется роль сегментного регистра. Теперь он содержит не адрес, а индекс в таблице дескриптора сегментов, но он по прежнему указывает на сегмент данных, команд, стека.
Размер сегментов в защищённом режиме может достигать размера всего адресного пространства.
Выведение информации о базовом адресе сегмента и его размере на уровень микропроцессора позволяет аппаратное контролировать работу программ с памятью и предотвращать обращение по несуществующим адресам.
Сегменты неравноправны в правах доступа к ним.
Существуют 3 дескрипторные страницы:
GDT – глобальная дескрипторная страница. Это основная общесистемная таблица к которой допускается обращение со стороны программ, обладающими достаточными привилегиями. Расположение таблицы в памяти произвольно. Содержит следующие типы дескрипторов:
Дескриптор сегментов входа в программу.
Дескриптор сегмента данных программ
Дескриптор стековых сегментов программ
Дескриптор TSS(сегменты состояния задач)
Дескриптор таблицы LDT(локальная дескрипторная таблица)
Шлюзы вызова и шлюзы задач
LDT – для любой задачи в системе может быть создана своя дескрипторная таблица, тем самым адресное пространство задачи локализуется в пределах, установленных набором дескрипторов страницы. Содержит следующие типы дескрипторов:
Дескриптор сегментов кода программ
Дескриптор сегмента данных программ
Дескриптор стековых сегментов
Шлюзы вызова и шлюзы задач
IDT – дескрипторная таблица прерываний. Содержит дескрипторы специального типа, который определяют местоположение программ – обработчиков всех видов прерываний. Элементы данной таблицы называются шлюзами.
Шлюзы бывают 3 типов:
Шлюзы задач
Шлюзы прерываний
Шлюзы ловушек