Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Резидентний оброблювач клавіатури (перехоплення натискань клавіш і запис у файл)

Реферат Резидентний оброблювач клавіатури (перехоплення натискань клавіш і запис у файл)





поля даних Резидентна частина

Точка входу В® entry програми

при виклику . Резидентні

: коди

iret

init

. Секція

: ініціалізації Завершення програми

Функція DOS 31h В® з складанням у пам'яті

її резидентної частини


Рис. 2.2 Взаємодія елементів резидентної програми.



Функція 31h, закріпивши за резидентної програмою необхідну для її функціонування пам'ять, передає управління командному процесору і обчислювальна система переходить в початковий стан. Наявність програми, резидентної в пам'яті, ніяк не відбивається на ходу обчислювального процесу, за винятком того, що зменшується обсяг вільної пам'яті. Одночасно в пам'ять може бути завантажено будь-яке число резидентних програм. p> На рис. 2.2 показані елементи резидентної програми та їх взаємодія. p> Будь резидентна програма має принаймні дві точки входу. При запуску з клавіатури програми типу. СОМ управління завжди передається на перший байт після PSP (IP = l00h). Тому практично завжди першою командою резидентної програми є команда jmp, що передає керування на початок секції ініціалізації.

Після відпрацювання функції DOS 31h програма залишається в пам'яті в пасивному стані. Для того, щоб активізувати резидентну програму, їй треба якось передати управління і, можливо, параметри. Викликати до життя резидентну програму можна різними способами, але найбільш вживаним є механізм апаратних чи програмних переривань. У цьому випадку в секції ініціалізації необхідно заповнити відповідний вектор адресою резидентної частини програми (точка entry на рис. 2.2). Адреса entry утворює другу точку входу в програму, через яку здійснюється її активізація. Очевидно, що резидентна секція програми повинна закінчуватися командою виходу з переривання iret.

Поля даних резидентної частини програми перемістилися в початок програми після команди imp. Це досить природне місце дня резидентних даних, тому що і при першому запуску, і при активізації сюди ніколи не буде передано управління. При заповненні в секції ініціалізації векторів не виникає проблем з перенастроюванням регістра DS, так як в програмі типу СОМ всі регістри вказують на єдиний сегмент програми. У секції ініціалізації передбачений, як це зазвичай робиться, висновок на екран повідомлення про завантаження програми в пам'ять.

Після запуску програми вона залишається в пам'яті і, активізуючись фактично апаратними перериваннями від клавіатури (а більш точно - програмою BIOS, що активізується апаратними перериваннями від клавіатури).

2.2. Захист резидентної програми від повторної установки

Як правило, в секції ініціалізації завантажуються вектори переривань, через які буде активі...


Назад | сторінка 3 з 23 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка програми-драйвера клавіатури
  • Реферат на тему: Культурно-розважальні програми на російському телеекрані (на прикладі прогр ...
  • Реферат на тему: Створення програми, що включає всі програми лабораторних робіт
  • Реферат на тему: Порівняльний аналіз програми Занкова і традиційної програми
  • Реферат на тему: Управління розвитком санаторно-курортного комплексу через цільові програми ...