Часть полного текста документа:Министерство образования Украины Одесская государственная академия холода Институт информационных технологий Кафедра "Информационных систем" Разработка резидентного обработчика прерываний от клавиатуры Курсовой проект по дисциплине "Системы программирования и операционные системы" Руководитель Ненов А. Д. Исполнитель Ст. гр. 333А Лазанюк А. С. Зач. книжка № 983214 Защищён с оценкой _____________________ (личная подпись) _______________ г. Одесса 2000 г. Содержание: 1. Задание.............................................................................................................2 2. Краткие теоретические сведенья 2.1. Резидентный обработчик прерываний..................................................................3 2.2. Защита резидентной программы от повторной установки.........................................5 2.3. Выгрузка резидентной программы из памяти.........................................................8 2.4. Перехват прерываний....................................................................................11 2.5. Обработчик прерываний.................................................................................12 2.6. Прерывания от внешних устройств....................................................................12 2.7. Резидентный обработчик прерываний от клавиатуры с подключением до системного обработчика.................................................................................................14 3. Описание программы 3.1. Описание для пользователя..............................................................................19 3.2. Описание для программиста............................................................................20 3.3. Листинг программы.......................................................................................24 3.4. Рекомендации по улучшению...........................................................................32 4. Список используемой литературы........................................................................33 1. Задание Разработка резидентного обработчика прерываний от клавиатуры с подключением до системного. Данный обработчик должен производить запись скэн-кодов всех нажимаемых клавиш, а также фиксировать байт флагов клавиатуры при каждом нажатии. Обработчик должен иметь механизм выгрузки из оперативной памяти встроенный в него самого. Также программа должна иметь защиту от повторной установки в оперативную память. 2. Краткие теоретические сведенья 2.1. Резидентный обработчик прерываний Большой класс программ, обеспечивающих функционирование вычислительной системы (драйверы устройств, программы шифрации и защиты данных, русификаторы, обслуживающие программы типа электронных блокнотов или калькуляторов и др.), должны постоянно находиться в памяти и быстро реагировать на запросы пользователя или на какие-то события, происходящие в вычислительной системе. Такие программы носят названия программ, резидентных в памяти (Terminate and Stay Resident, TSR), или просто резидентных программ. Сделать резидентной можно как программу типа СОМ, так и программу типа ЕХЕ, однако ввиду того, что резидентная программа должна быть максимально компактной, чаще всего в качестве резидентных используют программы типа СОМ. Рассмотрим типичную структуру резидентной программы и системные средства оставления ее в памяти после инициализации (рис. 2.1). text segment 'code' assume CS:text,DS:text org 100h main proc jmp init ;Переход на секцию инициализации ; Данные резидентной секции программы . . . entry: ; Текст резидентной секции программы . . . main endp init proc ;Секция инициализации . ............ |