Резидентный обработчик клавиатуры (перехват нажатий клавиш и запись в файл)
Министерство образования УкраиныОдесская государственная академия холодаИнститут информационных технологийКафедра «Информационных систем»Разработка резидентного обработчика прерываний от клавиатурыКурсовой проект по дисциплине«Системы программирования и операционные системы»Руководитель Ненов А. Д. Исполнитель Ст. гр. 333А Лазанюк А. С. Зач. книжка № 983214Защищён с оценкой_____________________ (личная подпись)_______________г. Одесса 2000 г.Содержание:Задание……………………………………………………………………………………………….2Краткие теоретические сведеньяРезидентный обработчик прерываний………………………………………………………...3Защита резидентной программы от повторной установки…………………………………..5Выгрузка резидентной программы из памяти………………………………………………...8Перехват прерываний…………………………………………………………………………11Обработчик прерываний………………………………………………………………………12Прерывания от внешних устройств…………………………………………………………..12Резидентный обработчик прерываний от клавиатуры с подключением до системного обработчика…………………………………………………………………………………….14Описание программыОписание для пользователя…………………………………………………………………...19Описание для программиста………………………………………………………………….20Листинг программы………………………………………………………………………..….24Рекомендации по улучшению………………………………………………………………...32Список используемой литературы…………………………………………………………..….331. ЗаданиеРазработка резидентного обработчика прерываний от клавиатуры с подключением до системного. Данный обработчик должен производить запись скэн-кодов всех нажимаемых клавиш, а также фиксировать байт флагов клавиатуры при каждом нажатии. Обработчик должен иметь механизм выгрузки из оперативной памяти встроенный в него самого. Также программа должна иметь защиту от повторной установки в оперативную память.2. Краткие теоретические сведенья2.1. Резидентный обработчик прерыванийБольшой класс программ, обеспечивающих функционирование вычислительной системы (драйверы устройств, программы шифрации и защиты данных, русификаторы, обслуживающие программы типа электронных блокнотов или калькуляторов и др.), должны постоянно находиться в памяти и быстро реагировать на запросы пользователя или на какие-то события, происходящие в вычислительной системе. Такие программы носят названия программ, резидентных в памяти (Terminate and Stay Resident, TSR), или просто резидентных программ. Сделать резидентной можно как программу типа СОМ, так и программу типаЕХЕ, однако ввиду того, что резидентная программа должна быть максимально компактной, чаще всего в качестве резидентных используют программы типа СОМ.Рассмотрим типичную структуру резидентной программы и системные средства оставления ее в памяти после инициализации (рис. 2.1).text segment 'code'assume CS:text,DS:textorg 100h main procjmp init