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

Реферат Обробка програмних і апаратних переривань в IBM PC сумісних комп'ютерах за допомогою резидентних програм





мпочок. Зрушення лампочки і установка стану лампочок організовані як окремі підпрограми (процедури).

. Потім управління передається збереженому оброблювачу переривання 09h клавіатури - це дозволяє всім прикладним програмам нормально отримувати і обробляти натискання клавіш. Виклик переривання емулюється послідовністю інструкцій pushf і call.

. Наприкінці обробника аналізується факт одночасного натискання гарячих клавіш Left Ctrl + Left Shift і включається або відключається активність резидентної частини програми. При неактивній (виключеною) резидентної частини вона не робить впливу на роботу комп'ютера.


4. Реалізація резидентної програми на мові Асемблер


Перевірка активності резидента, натискання клавіші:


mov AL, activeAL, ALinactive_continueAL, pressedAL, ALshort key_downpressed, 0short inactive_continue


Якщо клавіша натиснута:


key_down:

call shift_lightset_light

mov pressed, 1

Зрушення і установка лампочки:


shift_light proc nearAL, lightAL, 1AL, 70hnot_shiftedAL, 40h

_ shifted: light, AL_light endp

_ light proc nearAX, AXES, AXAL, ES: [0417h] AL, 8FhAL, lightES: [0417h], AL_light endp


Читання стану клавіатури і перевірка натискання гарячих клавіш, що припиняють резидента:


mov AL, byte ptr ES: [0417h] AL, 6hAL, 6hnotPressedAL, activeAL, 1 active, AL


5. Тестування та налагодження резидентної програми


У додатку Д наведено скріншот результату виконання програми. З наведеного скріншота видно, що програма повідомляє про своє запуску, пізнає і повідомляє, що програма вже завантажена резидентно і перемикає стан клавіш Caps Lock, Num Lock і Scroll Lock при натисканні на клавішу.



Висновок


У даному курсовому проекті була розроблена програма, що змінює стан керуючих клавіш: Caps Lock, Scroll Lock і Num Lock. Програма може використовувати клавіатуру по-різному. Вона може затримати своє виконання, до тих пір, поки оператор не натисне якусь клавішу.



Список використаної літератури:


1. Фіногенов К.Г. Самовчитель по системних функцій  MS DOS.- М .: Радио и связь, ентропія, 1995. - 382 с., Іл.

. Зубков С.В. Assembler. Мова необмежених можливостей.- М .: ДМК Пресс, 1999. - 608 с., Іл.

. Пирогов В.Ю. Assembler. Навчальний курс.- М .: Видавець Молгачева С.В., Видавництво Нолидж, 2001. - 848 с., Іл.



Додаток А


(обов'язковий)



Додаток Б


(обов'язковий)



Додаток В


(обов'язковий)



Додаток Г


(обов'язковий)


model tinysegment; визначення кодового сегментаCS: code, DS: code; CS і DS вказують на сегмент кода100h


; резидентна частина програми

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


; дані резидентної частини програми: F dd? ; збережений обробник 2Fhdd? ; збережений обробник 09hdb0; прапор активності резидента


; int 09h отримує управління двічі: при натисканні і при отжатии клавіші. Щоб спрацьовувало при нажаніі,

; використовується прапор: db 0; клавіша натиснута/відпущена (0 - натиснута, 1 - відпущена)


; лампочки контролюються бітами 4,5,6 байта [0040h: 0017h]

; біт 5 (00100000b) - NumLock

; біт 6 (01000000b) - CapsLock

; біт 4 (00010000b) - SrollLockdb 20h; маска лампочок (00100000b) - NumLock On


; обробник переривання клавіатури 09hHandler: ESAXAL, active; перевіряємо активність нашого резідентаAL, ALinactive_continue; неактивний? нічого не делаемAL, pressed; натиснута клавіша або відпущена?

or AL, ALshort key_down; якщо натиснута - переходpressed, 0; відпущена - скинути флажокshort inactive_continue


key_down:; при натисканні клавіші: shift_light; зрушити лампочкуset_light; і встановити ееpressed, 1; і поставити прапорець натискання


inactive_continue: dword ptr CS: old09; перейти на збережений обработчікAX, AXES, AXAL, byte ptr ES: [0417h]

and AL, 6h; перевіряємо одночасне натискання клавіш (вкл/викл резидента)

cmp AL, 6h; 110b - біти 1 і 2 - Ctrl + Left Shift

jne notPressedAL, activeAL, 1; перемикаємо стан резидента (активний/...


Назад | сторінка 4 з 5 | Наступна сторінка





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

  • Реферат на тему: Резидентний оброблювач клавіатури (перехоплення натискань клавіш і запис у ...
  • Реферат на тему: Обов'язковий набір програм безпеки на персональному комп'ютері
  • Реферат на тему: Розробка програми-драйвера клавіатури
  • Реферат на тему: Стан та аналіз Виконання виробничої програми з розвитку рослінніцької Галуз ...
  • Реферат на тему: Розробка програми перекладу введеного рядка тексту в послідовність кодів аб ...