Защищенный режим процессоров Intel

       

Защищенный режим процессоров Intel

ВВЕДЕНИЕ
ВХОДИМ В ЗАЩИЩЁННЫЙ РЕЖИМ
Подготовка к переключению в защищённый режим

Переключение в защищённый режим
Возврат в реальный режим
Пример простой программы переключения режима
ОСОБЕННОСТИ ЗАЩИЩЁННОГО РЕЖИМА ПРОЦЕССОРА I80286

Адресация памяти в реальном режиме
Адресация памяти в защищённом режиме
Преобразование адресов в защищённом режиме
Детальное описание схемы преобразования адресов

Защита в процессоре i80286
Кольца защиты
Тип сегментов
Границы сегментов

Привилегированные и чувствительные команды
Межсегментная передача управления
Команды CALL и JMP
Команды RET и IRET
Виртуальная память в процессоре i80286
ОБРАБОТКА ПРЕРЫВАНИЙ В ЗАЩИЩЁННОМ РЕЖИМЕ
Прерывания в реальном режиме
Прерывания защищённого режима

Таблица прерываний защищённого режима
Исключения в защищённом режиме
Обработка аппаратных прерываний
Программа, которая работает с прерываниями

ОСОБЕННОСТИ ПРОЦЕССОРОВ I80386 И I80486
Преобразование адресов
Обработка прерываний
Мультизадачность

Режим виртуального процессора i8086
Виртуальные машины
Переключение в защищённый и реальный режимы
Процессор i80486
Что дальше?
МУЛЬТИЗАДАЧНОСТЬ В ПРОЦЕССОРЕ I80286

Задача и сегмент состояния задачи
Переключение задач
Синхронизация задач и семафоры
Пример мультизадачного монитора

ОПЕРАЦИОННАЯ СИСТЕМА MICROSOFT WINDOWS
Использование функций DPMI

Драйверы, резидентные программы и WINDOWS
Связь с WINDOWS CLIPBOARD
Получить версию WinOldAp
Открыть CLIPBOARD
Очистить CLIPBOARD
Записать данные в CLIPBOARD

Получить размер CLIPBOARD
Прочитать данные из CLIPBOARD
Закрыть CLIPBOARD
Установить размер данных, записанных в CLIPBOARD
Критическая секция
Пример программы для работы с CLIPBOARD
ОБЗОР ЛИТЕРАТУРЫ

ИЕРАРХИЯ СРЕДСТВ ДЛЯ РАБОТЫ В ЗАЩИЩЁННОМ РЕЖИМЕ
Интерфейс BIOS
Определить размер расширенной памяти
Переслать блок расширенной памяти
Установить защищённый режим работы процессора
Пример использования интерфейса BIOS

Интерфейс HIMEM.SYS
Интерфейс EMS/VCPI
Проверка наличия в системе интерфейса VCPI
Получить адрес интерфейса VCPI
Определить максимальный физический адрес памяти
Определить количество свободных страниц памяти
Получить страницу памяти

Освободить страницу памяти
Получить физический адрес страницы памяти, располагающейся в пределах первого мегабайта
Прочитать содержимое системного регистра CR0
Прочитать содержимое отладочных регистров
Установить отладочные регистры
Получить отображение векторов прерываний для контроллеров прерываний 8259
Установить отображение векторов прерываний для контроллеров прерываний 8259
Переключить процессор в защищённый режим
Переключить процессор в виртуальный режим
Пример программы

Интерфейс DPMI
Получить адрес перехода в защищённый режим
Вход в защищённый режим
Определение текущего режима работы
Создать дескриптор в таблице LDT
Освободить дескриптор в таблице LDT
Преобразование сегмента в дескриптор
Получить значение инкремента для вычисления следующего селектора в массиве
Зарезервированные функции
Получить базовый адрес сегмента

Установить базовый адрес сегмента
Установить предел сегмента
Установить поле прав доступа в дескрипторе

Защищенный режим процессоров Intel

Создание алиасного дескриптора для сегмента кода
Получить дескриптор
Установить дескриптор
Получить конкретный дескриптор в таблице LDT
Получить блок памяти из пула свободной памяти DOS
Освободить блок памяти, взятый из пула DOS
Изменить размер блока памяти, полученного из пула DOS
Получить вектор прерывания реального режима
Установить вектор прерывания реального режима

Получить адрес обработчика исключения с заданным номером
Установить адрес обработчика исключения с заданным номером
Получить вектор прерывания защищённого режима
Установить вектор прерывания защищённого режима
Эмуляция прерывания реального режима
Вызов процедуры реального режима, заканчивающейся командой RET FAR
Перехват передачи управления программе реального режима
Отмена перехвата передачи управления процедуре реального режима.
Получить адреса процедур сохранения/восстановления состояния.

Получить адрес процедуры переключения режима
Получить версию спецификации DPMI
Получить информацию о свободной памяти
Получить блок памяти
Освободить блок памяти
Изменить размер блока памяти
Зафиксировать линейную область памяти
Расфиксирование блока памяти
Отмена фиксации страниц для области памяти виртуального режима
Фиксация страниц для области памяти виртуального режима

Получить размер страницы памяти
Отметка страницы для свопинга
Отвергнуть содержимое страниц
Преобразование физического адреса в линейный
Запретить виртуальные прерывания
Разрешить виртуальные прерывания.
Получить состояние флага виртуальных прерываний
Получить адрес для использования расширений DPMI
Установить точку останова для отладки

Отмена отладочной точки останова
Получить состояние отладочной точки останова
Сброс точки останова
DOS-экстендеры
Phar Lap DOS-экстендер
Виртуальная машина WINDOWS
ПРИЛОЖЕНИЕ
Регистр EFLAGS

Управляющие регистры процессора i80386
Формат регистра CR0 процессора i80386
Формат регистра CR0 процессора i80486
Формат регистра CR3 процессора i80486
Системные команды процессоров i80286/i80386/i80486
ARPL Коррекция поля привилегий инициатора запроса в селекторе
CLTS Сброс флага TS переключения задачи в регистре CR0
LAR Загрузка байта прав доступа
LGDT Загрузка регистра GDTR
LIDT Загрузка регистра IDTR

LLDT Загрузка регистра LDTR
LMSW Загрузка слова состояния процессора
LSL Загрузка предела сегмента
LTR Загрузка регистра задачи
MOV Загрузка системных регистров
SGDT Запись в память содержимого регистра GDTR
SIDT Записать в память содержимое регистра IDTR
SLDT Записать в память содержимое регистра LDTR
SMSW Записать слова состояния процессора
STR Запись регистра задачи

VERW Проверить сегмент на возможность записи
Недокументированная команда LOADALL
Утилита MEMOSCOP
Защита программ от отладки

Web-редактор Macromedia Dreamweaver MX далее
Windows - статьи далее


Architecture Net - перейти
Что такое Microsoft .NET? - перейти
Основы технологии .NET - перейти

Программирование на управляемом C++ - перейти
ООП на управляемом C++ - перейти
Управляемый C++ в .NET Framework - перейти
Создание графических интерфейсов - перейти
Сборки и развертывание - перейти
Классы каркаса .NET Framework - перейти
Программирование в ADO.NET - перейти
ASP.NET и Web-формы - перейти
Web-службы - перейти
Web-узлы работающие на ATL Server - перейти

Защита - перейти
Трассировка и отладка в .NET - перейти