
- •Информатика и информационные технологии. Конспект лекций
- •Оглавление
- •Лекция № 1. Введение в информатику
- •1. Информатика. Информация. Представление и обработка информации
- •2. Системы счисления
- •3. Представление чисел в эвм
- •4. Формализованное понятие алгоритма
- •Лекция № 2. Язык Pascal
- •1. Введение в язык Pascal
- •2. Стандартные процедуры и функции
- •3. Операторы языка Pascal
- •Лекция № 3. Процедуры и функции
- •1. Понятие вспомогательного алгоритма
- •2. Процедуры в Pascal
- •3. Функции в Pascal
- •4. Опережающие описания и подключение подпрограмм. Директива
- •Лекция № 4. Подпрограммы
- •1. Параметры подпрограмм
- •2. Типы параметров подпрограмм
- •Лекция № 5. Строковый тип данных
- •1. Строковый тип в Pascal
- •2. Процедуры и функции для переменных строкового типа
- •3. Записи
- •4. Множества
- •Лекция № 6. Файлы
- •1. Файлы. Операции с файлами
- •2. Модули. Виды модулей
- •Лекция № 7. Динамическая память
- •1. Ссылочный тип данных. Динамическая память. Динамические переменные
- •2. Работа с динамической памятью. Нетипизированные указатели
- •Лекция № 8. Абстрактные структуры данных
- •1. Абстрактные структуры данных
- •2. Стеки
- •3. Очереди
- •Лекция № 9. Древовидные структуры данных
- •1. Древовидные структуры данных
- •2. Операции над деревьями
- •I. Построение дерева
- •II. Поиск узла с заданным значением ключевого поля
- •3. Примеры реализации операций
- •Лекция № 10. Графы
- •1. Понятие графа. Способы представления графа
- •2. Представление графа списком инцидентности. Алгоритм обхода графа в глубину
- •3. Представление графа списком списков. Алгоритм обхода графа в ширину
- •Лекция № 11. Объектный тип данных
- •1. Объектный тип в Pascal. Понятие объекта, его описание и использование
- •2. Наследование
- •3. Создание экземпляров объектов
- •4. Компоненты и область действия
- •Лекция № 12. Методы
- •1. Методы
- •2. Конструкторы и деструкторы
- •3. Деструкторы
- •4. Виртуальные методы
- •5. Поля данных объекта и формальные параметры метода
- •Лекция № 13. Совместимость типов объектов
- •1. Инкапсуляция
- •2. Расширяющиеся объекты
- •3. Совместимость типов объектов
- •Лекция № 14. Ассемблер
- •1. Об ассемблере
- •2. Программная модель микропроцессора
- •3. Пользовательские регистры
- •4. Регистры общего назначения
- •5. Сегментные регистры
- •6. Регистры состояния и управления
- •Лекция № 15. Регистры
- •1. Системные регистры микропроцессора
- •2. Регистры управления
- •3. Регистры системных адресов
- •4. Регистры отладки
- •Лекция № 16. Программы на Ассемблере
- •1. Структура программы на ассемблере
- •2. Синтаксис ассемблера
- •3. Директивы сегментации
- •Лекция № 17. Структуры команд на Ассемблере
- •1. Структура машинной команды
- •2. Способы задания операндов команды
- •3. Способы адресации
- •Лекция № 18. Команды
- •1. Команды пересылки данных
- •2. Арифметические команды
- •Лекция № 19. Команды передачи управления
- •1. Логические команды
- •2. Команды передачи управления
Лекция № 15. Регистры
1. Системные регистры микропроцессора
Само название этих регистров говорит о том, что они выполняют специфические функции в системе. Использование системных регистров жестко регламентировано. Именно они обеспечивают работу защищенного режима. Их также можно рассматривать как часть архитектуры микропроцессора, которая намеренно оставлена видимой для того, чтобы квалифицированный системный программист мог выполнить самые низкоуровневые операции.
Системные регистры можно разделить на три группы:
1) четыре регистра управления;
2) четыре регистра системных адресов;
3) восемь регистров отладки.
2. Регистры управления
В группу регистров управления входят четыре регистра: cr0, cr1, cr2, cr3. Эти регистры предназначены для общего управления системой. Регистры управления доступны только программам с уровнем привилегий 0.
Хотя микропроцессор имеет четыре регистра управления, доступными являются только три из них – исключается cr1, функции которого пока не определены (он зарезервирован для будущего использования).
Регистр cr0 содержит системные флаги, управляющие режимами работы микропроцессора и отражающие его состояние глобально, независимо от конкретных выполняющихся задач.
Назначение системных флагов:
1) ре (Protect Enable), бит 0 – разрешение защищенного режима работы. Состояние этого флага показывает, в каком из двух режимов – реальном (ре = 0) или защищенном (ре = 1) – работает микропроцессор в данный момент времени;
2) mp (Math Present), бит 1 – наличие сопроцессора. Всегда 1;
3) ts (Task Switched), бит 3 – переключение задач. Процессор автоматически устанавливает этот бит при переключении на выполнение другой задачи;
4) am (Alignment Mask), бит 18 – маска выравнивания. Этот бит разрешает (am = 1) или запрещает (am = 0) контроль выравнивания;
5) cd (Cache Disable), бит 30 – запрещение кеш-памяти.
С помощью этого бита можно запретить (cd =1) или разрешить (cd = 0) использование внутренней кеш-памяти (кеш-памяти первого уровня);
6) pg (PaGing), бит 31 – разрешение (pg =1) или запрещение (pg = 0) страничного преобразования.
Флаг используется при страничной модели организации памяти.
Регистр cr2 используется при страничной организации оперативной памяти для регистрации ситуации, когда текущая команда обратилась по адресу, содержащемуся в странице памяти, отсутствующей в данный момент времени в памяти.
В такой ситуации в микропроцессоре возникает исключительная ситуация с номером 14, и линейный 32-битный адрес команды, вызвавшей это исключение, записывается в регистр cr2. Имея эту информацию, обработчик исключения 14 определяет нужную страницу, осуществляет ее подкачку в память и возобновляет нормальную работу программы;
Регистр cr3 также используется при страничной организации памяти. Это так называемый регистр каталога страниц первого уровня. Он содержит 20-битный физический базовый адрес каталога страниц текущей задачи. Этот каталог содержит 1024 32-битных дескриптора, каждый из которых содержит адрес таблицы страниц второго уровня. В свою очередь, каждая из таблиц страниц второго уровня содержит 1024 32-битных дескриптора, адресующих страничные кадры в памяти. Размер страничного кадра – 4 Кбайта.