Informatika va programmalash



Download 1,53 Mb.
bet68/74
Sana13.07.2022
Hajmi1,53 Mb.
#786339
1   ...   64   65   66   67   68   69   70   71   ...   74
Bog'liq
Informatika va programmalash

Boshqa registrlar
SP, BP–stek bilan ishlashda, adreslarni vaqtincha saqlash uchun ishlatiladi.
SI, DI–indeks registrlari, qo‘shish va ayirish amallarida ishlatiladi.
IP – buyruq siljishini saqlash registri.
Bayroq registri – holatlarni aniqlashda ishlatiladi.
Turbo-Paskal muhitida Registers turi aniqlangan bo‘lib, uning ko‘rinishi.
Type
Registers  Record
Case Integer Of
0: (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flag:Word);
1: (AL, AH, Bl, BH, CL, CH, DL, DH : Byte);
End;
Uzilishdagi funksiyalar ma’lum bir registrlardan kiruvchi qiymatlar uchun ishlatiladi. Odatda R.AH - funksiya nomerini, R.AL va boshqa registrlar chiqish qiymatlari uchun ishlatiladi (R.AL –funksiya qanday bajarilganligini bildiradi (0 – muvaffaqiyatli).
Uzilishlar bilan ishlashga misollar.
Kursorni matn ekranining (35,10) nuqtasiga ko‘chirish.
…R.AH : 2;
R.DH :10;
R.DL:35;
Intr(10H, R);
...
Subprotsessor va rezident programmalar. Foydalanuvchining o‘zi ham uzilish programmalarini yaratishi mumkin. Bu protsedura bosh qismi quyidagicha bo‘lishi kerak.
Procedure IntProc (Flag, CS, IP, ..., ES, BP : Word); Interrup;
Parametrlar ro‘yxatida uzilish bo‘lmasligi kerak. Bosh qismidan ma’lum qismini tashlab yuborish mumkin.
Misol.
Uses Dos;
Var
GlVar1, GlVar2, GlVar3, ... , GlVarK : Word;
{$F+}
Procedure MyInterupt(Flag, Cs, Ip, Ax, ..., Bp : Word); Interrupt;
Var
{lokal o‘zgaruvchilar}
Begin
GlVar1 :Ax;
GlVar2 : Port[N];
. . .
End;
{$F-}
Var
N : Byte;
OldInterrupt : Pointer;
Begin
N := {almashtiriladigan uzilish nomeri}
GetIntVec (N, OldIntVectN);
SetIntVec(N, @MyInterrupt);
{ programma o‘z uzilishi bilan ishlaydi}
SetIntVec(N, OldIntVecN);
End;

Subprotsess (subjarayon) deganda bir programma ichidan ikkinchi programmani ishga tushirishga aytiladi. Misol uchun Norton Commander programmasi subprotsessorli norezident programmadir. Subprotsess ro‘y berganda asosiy programma «to‘xtab» qoladi, subprotsess tugagandan keyin o‘z ishini davom ettiradi.


Rezident programmalarning asosiy xususiyati shundaki, bu programmalar operativ xotiraga yuklangandan keyin xotirada saqlanib qoladi va ma’lum bir shartlar bajarilganda ishga tushadi. Odatda bunday programmalar uzilish nomerlariga bog‘langan bo‘ladi (masalan, turli drayverlar, antivirus va virus programmalar va hakozo). Passiv holda rezident programmalar hech qanday ta’sirga ega emas.
Subprotsessni amalga oshirishda xotiradan unumli foydalanish kerak. Buning uchun {$M, Stek, MinimumUyum, MaksimumUyum} psevdo izoxi yordamida xotirani programmalar o‘rtasida taqsimotini amalga oshirish mumkin. Bunda stek – 1..64Kb, MinimumUyum va MaksimumUyum 0..655360 (640Kb) bo‘lgan son. Bu qiymatlar orqali xotiraning stek va uyumiga «buyurtma» berish mumkin.
Misol uchun, programma 986 bayt stek, 2000 bayt uyum xotira ishlatadigan bo‘lsa, bu talab {$M 1024,0,2048} orqali berilishi mumkin. {$M, 4096, 0, 0} – uyum ishlatmaydigan programma.
Subprotsessor protseduralari. SwapVectors – TP muhitidan bir programma ishga tushganda uzilishlar vektorida o‘zgarishlar sodir bo‘ladi. Lekin uzilishlar vektorining oldingi holati Pointer turidagi SaveIntNN (NN-uzilish nomeri) o‘zgaruvchilarida saqlanib qoladi. Subprotsessorlar ishga tushganda asosiy programma holatini anglatuvchi (aniqlovchi) uzilishlar vektorini saqlab qolish va subprotsessor tugagandan keyin tiklash kerak. Bu vazifani SwapVectors amalga oshiradi. Birinchi marta chaqirilganda holatni saqlab qoladi, ikkinchi marta chaqirilganda uni tiklaydi.
Exec(ExeFile, Comline : String) – subprotsessorni ishga tushiradi. Bu ExeFile – ishga tushiriladigan ish modul (fayl) nomi, Somline – ishga tushiriladigan programma uchun buyruq satri.
Misol uchun, “C:/Format a:/s” DOS buyrug‘ini programma ichidan bajarish uchun quyidagi protsedura – operatorlarini yozish kerak.
Swapvectors;
Exec(‘c: /format.com’,’a:/s’) ;
Swapvectors;



Download 1,53 Mb.

Do'stlaringiz bilan baham:
1   ...   64   65   66   67   68   69   70   71   ...   74




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish