7-Laboratoriya ishi To’xtalishlar qo’llaniladigan dasturlar ishlab chiqish Interrupt nima
Rezidentlik dasturining tuzilishi
Download 50.35 Kb.
|
6-sem 7-Laboratoriya ishi To’xtalishlar qo’llaniladigan dasturlar ishlab chiqish
Rezidentlik dasturining tuzilishi
Oddiy dasturlardan farqli o'laroq, kodining katta qismi ishga tushirilgandan to yakuniga qadar bajariladi, rezident dasturlar ikki qismdan iborat: rezident qismning o'zi va yordamchi qism. Dastur ishga tushganda faqat yordamchi qism bajariladi, bu esa rezident qismni faollashtirishga tayyorlaydi. Yordamchi qism quyidagilarni bajaradi: 1.) "ushlangan" uzilishlar vektorlarini ichki o'zgaruvchilarda saqlaydi; 2.) bu vektorlarni dasturning rezident qismi manziliga o'rnatadi; 3.) rezident qismning ichki o'zgaruvchilarini inisializatsiya qiladi; 4.) kompyuter xotirasidan rezident qismini o‘chirmasdan dasturni tugatadi. Ushbu harakatlarning past darajada amalga oshirilishi: 1.) 35-DOS uzilish funksiyasini chaqirish INT 21H (GET VECTOR), bu uzilish vektorini ikki so'zli yorliqda saqlash imkonini beradi; 2.) uzilish vektorini ma'lum manzilga o'rnatish imkonini beruvchi DOS INT 21H (SET VECTOR) 25-uzilish funksiyasini chaqirish; 3.) dasturdagi maqsadiga qarab ichki o'zgaruvchilarga boshlang'ich qiymatlarni belgilash; 4.) DOS 27H (KEEP) uzilish chaqiruvi, bu rezident qismini kompyuter xotirasidan olib tashlamasdan dasturning bajarilishini yakunlash imkonini beradi. Dasturning rezident qismi operativ xotirada bo'lganidan keyin va "ushlangan" uzilish vektori bilan ko'rsatilgandan so'ng, uni ushbu uzilishni chaqirish orqali faollashtirish mumkin. Turar joy qismini qurish uchta ijro sxemasiga muvofiq amalga oshirilishi mumkin. "A" sxemasida birinchi navbatda tizimni qayta ishlash chaqiriladi, so'ngra dasturchi tomonidan yozilgan qo'shimcha foydalanuvchi ishlovi amalga oshiriladi. Ushbu sxema dasturchi tizimni qayta ishlashga biror narsa qo'shmoqchi bo'lganda mos keladi. Masalan, Ctrl-Alt tugmachalarini bosish orqali siz mashinani belgilar yorqinligi atributlarini teskarisiga o'zgartirishga majbur qilishingiz mumkin. MISOL 1. Ctrl-Alt tugmalar birikmasi bosilganda ekrandagi barcha belgilarning yorqinligini o'zgartiruvchi rezident dastur. "B" sxemasi bo'yicha tuzilgan dastur avval foydalanuvchi ishlovini, keyin esa tizimni qayta ishlashni amalga oshiradi. Ushbu holat registrlar tarkibini o'zgartirish yoki tizimni qayta ishlashdan oldin biror narsa qilish uchun javob beradi. "B" sxemasi barcha virus dasturlari tomonidan dasturning oxiriga qo'shilish uchun uning ishga tushirilishining uzilishini kuzatadi. 2 - MISOLDA"B" sxema bo'yicha yozilgan dastur ekranda "bo'shliq" belgisini ko'rsatishda tizimning uni qizil fonda ko'rsatishiga olib keladi. Ushbu dastur INT 10H xizmatni uzish vektorini to'xtatadi, ularning 09H va 0AH funktsiyalari kursorning joriy holatidan ekranda belgilarni ko'rsatish uchun ishlatiladi. Ushbu funktsiyalardan biri chaqirilganda, rezident dastur ekranda ko'rsatilgan belgilar raqamini tekshiradi (u AL registrida) va tekshirish natijasiga qarab, belgi rangini (BL registr) tiklaydi. . Tekshiruvdan so'ng tizimni qayta ishlashga o'tish amalga oshiriladi, bunda foydalanuvchi ishlov berish jarayonida o'rnatilgan parametrlar bilan ekranda belgi ko'rsatiladi va boshqaruv asosiy jarayonga qaytariladi. "S" sxemasi tizimni qayta ishlashni butunlay yo'q qiladi va uni foydalanuvchi ishlovi bilan almashtiradi. Agar ushbu uzilishni qayta ishlashni butunlay istisno qilish kerak bo'lsa, rezident qism faqat 20H portiga (kod 20H) uzilishning tugashi to'g'risida signal yuborish va IRET qaytarish bayonotidan iborat bo'lishi kerak. 3 -misolda ko'rib chiqilayotgan sxema ko'rsatilgan. Dastur foydalanuvchi taymerining INT 1CH uzilishidan foydalanadi va yuqori chap burchakda hisoblagich qiymatini ko'rsatadi. Tizim taymeri sekundiga taxminan 18,5 marta INT 1CH uzilishini ("qisqa") hosil qiladi. Dastur 10 ta shunday "belgi" ni kutadi va ekranning yuqori chap burchagida ko'rsatilgan belgi sonini bittaga oshiradi. 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