
- •Информатика и информационные технологии. Конспект лекций
- •Оглавление
- •Лекция № 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. Команды передачи управления
3. Регистры системных адресов
Эти регистры еще называют регистрами управления памятью.
Они предназначены для защиты программ и данных в мультизадачном режиме работы микропроцессора. При работе в защищенном режиме микропроцессора адресное пространство делится на:
1) глобальное – общее для всех задач;
2) локальное – отдельное для каждой задачи.
Этим разделением и объясняется присутствие в архитектуре микропроцессора следующих системных регистров:
1) регистра таблицы глобальных дескрипторов gdtr (Global Descriptor Table Register), имеющего размер 48 бит и содержащего 32-битовый (биты 16–47) базовый адрес глобальной дескрипторной таблицы GDT и 16-битовое (биты 0—15) значение предела, представляющее собой размер в байтах таблицы GDT;
2) регистра таблицы локальных дескрипторов ldtr (Local Descriptor Table Register), имеющего размер 16 бит и содержащего так называемый селектор дескриптора локальной дескрипторной таблицы LDT Этот селектор является указателем в таблице GDT, который и описывает сегмент, содержащий локальную дескрипторную таблицу LDT;
3) регистра таблицы дескрипторов прерываний idtr (Interrupt Descriptor Table Register), имеющего размер 48 бит и содержащего 32-битовый (биты 16–47) базовый адрес дескрипторной таблицы прерываний IDT и 16-битовое (биты 0—15) значение предела, представляющее собой размер в байтах таблицы IDT;
4) 16-битового регистра задачи tr (Task Register), который подобно регистру ldtr, содержит селектор, т. е. указатель на дескриптор в таблице GDT Этот дескриптор описывает текущий сегмент состояния задачи (TSS – Task Segment Status). Этот сегмент создается для каждой задачи в системе, имеет жестко регламентированную структуру и содержит контекст (текущее состояние) задачи. Основное назначение сегментов TSS – сохранять текущее состояние задачи в момент переключения на другую задачу.
4. Регистры отладки
Это очень интересная группа регистров, предназначенных для аппаратной отладки. Средства аппаратной отладки впервые появились в микропроцессоре i486. Аппаратно микропроцессор содержит восемь регистров отладки, но реально из них используются только шесть.
Регистры dr0, dr1, dr2, dr3 имеют разрядность 32 бита и предназначены для задания линейных адресов четырех точек прерывания. Используемый при этом механизм следующий: любой формируемый текущей программой адрес сравнивается с адресами в регистрах dr0… dr3, и при совпадении генерируется исключение отладки с номером 1.
Регистр dr6 называется регистром состояния отладки. Биты этого регистра устанавливаются в соответствии с причинами, которые вызвали возникновение последнего исключения с номером 1.
Перечислим эти биты и их назначение:
1) b0 – если этот бит установлен в 1, то последнее исключение (прерывание) возникло в результате достижения контрольной точки, определенной в регистре dr0;
2) b1 – аналогично b0, но для контрольной точки в регистре dr1;
3) b2 – аналогично b0, но для контрольной точки в регистре dr2;
4) bЗ – аналогично b0, но для контрольной точки в регистре dr3;
5) bd (бит 13) – служит для защиты регистров отладки;
6) bs (бит 14) – устанавливается в 1, если исключение 1 было вызвано состоянием флага tf = 1 в регистре eflags;
7) bt (бит 15) устанавливается в 1, если исключение 1 было вызвано переключением на задачу с установленным битом ловушки в TSS t = 1.
Все остальные биты в этом регистре заполняются нулями. Обработчик исключения 1 по содержимому dr6 должен определить причину, по которой произошло исключение, и выполнить необходимые действия.
Регистр dr7 называется регистром управления отладкой. В нем для каждого из четырех регистров контрольных точек отладки имеются поля, позволяющие уточнить следующие условия, при которых следует сгенерировать прерывание:
1) место регистрации контрольной точки – только в текущей задаче или в любой задаче. Эти биты занимают младшие 8 бит регистра dr7 (по 2 бита на каждую контрольную точку (фактически точку прерывания), задаваемую регистрами dr0, dr1, dr2, dr3 соответственно).
Первый бит из каждой пары – это так называемое локальное разрешение; его установка говорит о том, что точка прерывания действует, если она находится в пределах адресного пространства текущей задачи.
Второй бит в каждой паре определяет глобальное разрешение, которое говорит о том, что данная контрольная точка действует в пределах адресных пространств всех задач, находящихся в системе;
2) тип доступа, по которому инициируется прерывание: только при выборке команды, при записи или при записи / чтении данных. Биты, определяющие подобную природу возникновения прерывания, локализуются в старшей части данного регистра. Большинство из системных регистров программно доступно.