7-Laboratoriya ishi To’xtalishlar qo’llaniladigan dasturlar ishlab chiqish Interrupt nima
Rezident dasturlarni tezkor tugmalar yordamida faollashtirish
Download 50.35 Kb.
|
6-sem 7-Laboratoriya ishi To’xtalishlar qo’llaniladigan dasturlar ishlab chiqish
Rezident dasturlarni tezkor tugmalar yordamida faollashtirish
Rezident dasturlarni uzilish orqali faollashtirishning eng keng tarqalgan usuli bu "issiq" tugmalar ("issiq tugmalar"), ya'ni oldindan o'rnatilgan tugmalar birikmasiga qo'ng'iroq qilishdir. Ctrl, Alt, LeftShift va RightShift tugmalar birikmalarini boshqarish eng oson. Rezident tezkor tugmalar dasturi odatda INT 09H ga o'rnatiladi, lekin uni INT 16H ga ham o'rnatish mumkin. Rezident qismning boshida klaviatura holatining bit bayroqlarini saqlaydigan 0000:0417H manzilida joylashgan xotira baytini, ya'ni hozir bosilgan boshqaruv tugmalari haqidagi ma'lumotlarni tekshirish kerak. Agar bitning qiymati 1 bo'lsa (bit o'rnatilgan), u holda tegishli tugma hozir bosiladi yoki mos keladigan rejim yoqilgan. 1- misolda tezkor tugmalar qo'ng'iroqlari yordamida rezident dastur tasvirlangan. Dastur INT 09H apparat uzilishini to'xtatadi va birinchi navbatda tizimni qayta ishlashni amalga oshiradi ("A" sxemasi), so'ngra klaviatura bayroqlarini tekshiradi. Agar klaviatura bayroqlari Ctrl va Alt tugmalarini bosishni ko'rsatsa, u holda dastur unga ko'rsatilgan amallarni bajaradi va boshqaruvni asosiy jarayonga o'tkazadi. Agar rezident dasturni faollashtirish uchun qo'shimcha (klaviatura holati bayroqlari baytiga kiritilmagan) tugmachalardan foydalanish kerak bo'lsa, siz qo'shimcha ravishda klaviatura portidan foydalanishingiz kerak. Quyida Ctrl-Alt-R tugmalar birikmasi yordamida faollashtirilgan rezident qismning fragmenti keltirilgan. JARAYON: PUSHF; Turar-joy QISMINING BOSHLANISHI CALL CS:OLD_VEC ; Simulyatsiya qilingan uzilish PUSH AX; Tizim qo'ng'iroqlarini qayta ishlash PUSHLAR; Registrlar to'plamiga saqlang IN AX,60H ; AX va ES CMP-AX,19; AX-da klaviatura portini o'qish JNZ A1; "R" tugmachasini bosish tekshirilmoqda MOV AX,0; bo'lmasa, boshqaruvni qaytaring MOVES, AX ; O'qish holati bayroqlari MOV AL,ES:[0417H]; klaviaturadan AL registriga va VA AL,00001100B; tugmalar bosilishini aniqlash CMP AL,00001100B; Ctrl-Alt, agar bo'lmasa, keyin JNZ CMP; qaytish nazorati ... ... ; 1-misoldagi kabi davom eting ... Ba'zi rezident dasturlar to'g'ri ishlashi uchun bir nechta uzilish vektorlarini olishlari kerak. Russifiers bunday dasturlarga misol bo'la oladi. Ushbu dasturlar INT 09H uzilishini to'xtatadi va undan issiq tugmalar yordamida Rus / Lat rejimlarini o'zgartirish momentini kuzatish uchun foydalanadi, shuningdek, bitta videoni o'zgartirganda belgilar generatoriga turli o'lchamdagi shriftlarni yuklash uchun INT 10H uzilishining 00H funktsiyasini to'xtatadi. rejimini boshqasiga o‘tkazish (masalan, 8*14 nuqtali 25*80 matn rejimini 8*8 nuqtali 42*80 matn rejimiga o‘zgartirganda). Download 50.35 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling