7-Laboratoriya ishi To’xtalishlar qo’llaniladigan dasturlar ishlab chiqish Interrupt nima


Rezident dasturlarni tezkor tugmalar yordamida faollashtirish


Download 50.35 Kb.
bet4/4
Sana14.01.2023
Hajmi50.35 Kb.
#1092787
1   2   3   4
Bog'liq
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:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling