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

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





му типу СОМ, так і програму типу

ЕХЕ, однак з огляду на те, що резидентна програма повинна бути максимально компактною, найчастіше як резидентних використовують програми типу СОМ.

Розглянемо типову структуру резидентної програми та системні засоби залишення її в пам'яті після ініціалізації (рис. 2.1).

text segment 'code'

assume CS: text, DS : text

org 100h main proc

jmp init ; Перехід на секцію ініціалізації

; Дані резидентної секції програми

. . .

entry: ; Текст резидентної секції програми

. . .

main endp

init proc ; Секція ініціалізації

. . .

mov DX, (Init-main +10 Fh)/16 ; Paзмер в параграфах

mov АН, 3100h ; функція "Завершити і залишити в

int 21h ; пам'яті "init endp text ends

end main

Рис 2 .1. Типова структура резидентної програми.

Програма пишеться у форматі СОМ, тому в ній передбачається тільки один сегмент, з якому зв'язуються сегментні регістри CS і DS; на початку сегмента резервується l00h байт дня PSP.

При запуску програми з клавіатури управління передається (відповідно до параметром директиви end) на початок процедури main. Командою jmp відразу ж здійснюється перехід на секцію ініціалізації, яка може бути оформлена у вигляді окремої процедури або входити до складу процедури main. У секції ініціалізації, зокрема, готуються умови для роботи програми вже в резидентном стані. Останніми рядками секції ініціалізації викликається функція DOS 31h, яка виконує завершення програми із залишенням в пам'яті зазначеної її частини. Ця функція не може залишати резидентними програми розміром більше 64 КБ, але багато програми, написані на асемблері, відповідають цій умові. Так як резидентні програми зменшують обсяг основної пам'яті, їх завжди пишуть на асемблері і оптимізують для досягнення мінімального розміру.

Розмір резидентної частини програми (у параграфах) передається DOS в регістрі DX. Визначити розмір резидентної секції можна, наприклад, таким обра-зом. До різниці зсувів mil-main, яка дорівнює довжині резидентної частини програми в байтах, додається розмір PSP (l00h) і ще число 15 (Fh) для того, щоб після цілочисельного ділення на 16 результат був заокруглений в більшу сторону. p> З метою економії пам'яті секція ініціалізації розташовується я кінці програми і відкидається при її завершенні.


В 

Точка входу В® main

при завантаженні jmp init

. Резидентні

: ...


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





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

  • Реферат на тему: Grammar of the Text: its Basic Units and Main Features (based on the novel ...
  • Реферат на тему: Культурно-розважальні програми на російському телеекрані (на прикладі прогр ...
  • Реферат на тему: Створення програми, що включає всі програми лабораторних робіт
  • Реферат на тему: Порівняльний аналіз програми Занкова і традиційної програми
  • Реферат на тему: Структура складної програми. Процедури