Ma’lumotlarni ko‘chirish protseduralari. Bu Move protsedurasi bo‘lib, u o‘z mohiyati bo‘yicha mashina buyrug‘i darajasidagi amaldir.
Yozilishi.
Move (Var Sourse, Dest, Nbytes : Word);
Protsedura uchta parametrga ega bo‘lib, operativ xotiradagi Nbytes – bayt o‘lchamidagi ma’lumotlarni ko‘chirish uchun xizmat qiladi. Sourse – ixtiyoriy turdagi o‘zgaruvchi bo‘lib, ko‘chiriladigan xotira bo‘lagining adresi (uning birinchi bayti), Dest – xotiradagi ko‘chirish joyi (birinchi bayti).
Misol:
1) A massiv boshiga V massiv nusxasini olish uchun Move(B,A, SizeOf(B)) ko‘rinishidagi murojaatni yozishimiz kerak.
2) A massivdagi 1000 haqiqiy qiymatni 1-o‘rindan boshlab 100 ta o‘ringa o‘ngga siljitish kerak bo‘lsin.
Buning uchun
oddiy holda - For i:1000 Downto 1 Do A[i100] : A[i];
Move orqali - Move (A[1], A[100], 1000*SizeOf(Real));
Bu yerda nusxa olish yo‘nalishi Move tomonidan avtomatik tarzda aniqlanadi.
§3.25. MS DOS uzilishlari bilan ishlash. Subprotsessorli va rezident programmalar
Programma ishlash jaryonida u tomonidan ma’lum bir amallarni bajarish uchun sistemaviy chaqiruvlar qilinishi mumkin. Masalan, klaviaturadan ma’lumot olish, disk yurituvchiga murojaat, belgini displey ekraniga yoki qog‘ozga chiqarish. Bunday chaqiruvlar amalga oshirish uchun uzilishlar mexanizmidan foydalaniladi. Bu mexanizmning mohiyati shundaki, programmaning ishlashi darhol qayta ishlanishi zarur bo‘lgan holatni yuzaga kelganligini bildiruvchi signal bilan qisqa vaqtga uzilishini (to‘xtatilishini) anglatadi. Har bir uzilish o‘z nomerlariga ega bo‘lib, unga yuzaga kelgan holatga xizmat qiluvchi qism-programma mos keladi. Har bir uzilish bir nechta funksiyalarni o‘z ichiga olishi mumkin.
TP muhitida uzilishlar bilan ishlash vositalari mavjud. Unda MS-DOS sistema funksiyalarini chaqirish uzilishlar yordamida amalga oshiriladi. har bir uzilish chaqirilganda bir qancha funksiyalar to‘plamidan foydalanishga imkon bo‘ladi. Misol uchun 16N nomerli uzilish klaviaturani boshqarishda, 25N diskdan o‘qish va hokazo ishlarni bajaradi. Bular orasida 21N uzilishlari alohida rol o‘ynaydi, OC ni hosil qiluvchi o‘nlab funksiyalarga murojaat qilishga imkon bo‘ladi. Mashina kodini bilmagan holda ham TP dan DOS moduli funksiyalari yordamida MS-DOS funksiyalariga murojaat qilish mumkin.
Bu funksiyalar ro‘yxati quyidagilar.
GETINTVEC (N: byte;Var Adress: Pointer)- tartib nomeri N bo‘lgan uzilish adresi.
SETINTVEC (N: byte;Adress: Pointer)- DOS ga yangi uzilish programmayini N nomeri bilan yozadi, eski adresni Adress ko‘rsatgan joyga joylashtiradi.
Intr (N:byte ,Var R: registers)-N-nomerli programma uzilishni R parametrlari bilan aktivlashtiradi.
MS-DOS (Var R: registers )-21N nomerli uzilishni chaqirish.
Uzilishlarga qiymat berish va natijaviy qiymatlarni olish registrlar orqali amalga oshirladi.
Quyida 8086** protsessor registrlari ro‘yxati keltiriladi.
Segment registrlari.
CS– kodlar segmenti registri.
DS– ma’lumotlar segmenti registri.
SS – stek segmenti registri.
ES – qo‘shimcha segment registri.
Umumiy registrlar.
AX – summator, AH/AL.
BX – baza registri, BH/BL.
CX – sanoq registri, CH/CL.
DX – ma’lumotlar registri, DH/DL.
Do'stlaringiz bilan baham: |