Adabiyotlar
[1],[2], [3], [4], [11], [12], [16], [20]; Fanning maruza matni, Internet-resurslar.
Dars № 4.2
Mavzu : Algoritm va programmani loyihalash Dars maqsadi :
1.Masalani yechishning algoritmini tuzish va tasvirlash . 2.Programmalash tilini tanlab olib programmani loyihalash
3.Programma uchun kiritish ma’lumotlarini va testlar to’plamioni aniqlash
Dars o’tish usuli : auditoriyada muloqotli seminar.
Algoritm va programma tuzish uchun ko’rsatmalar:
Tanlab olingan masalani yechish programmasini rezident shaklida loyihaash u- chun quyidagi ishlarni ketma - ket bajarish. Maqsadga muvofiqdir (ishlar to’plami va instrumental vositalar BP muhitidan olingan )
Xotirani boshqarish uchun kopmilyatorning $M kaliti ishlatiladi. Bu kalit asosiy programmaning birinchi satridan oldin qo’yiladi. Masalan, {$M 1024, 0, 2048}, bu yerda 1024 bayt, stek uchun va 2048 bayt kucha uchun ajratilgan.
Programmani xotirada qoldirish uchun ikkita protsedura ( DOS modulidan ) ishlatiladi.
Procedure Keep(Code: Word); Programmani yakunlangandan keyin xoti- rada uni resident shaklida saqlaydi.
Keep protsedurasi programma matnining eng oxirgi satrida (end-dan oldin ) joylashtiriladi.
Operatsion sistema uzulishlarini hisobga olib boshqarishni uzatish va yana qaytarishni tashkillashtirish.
Ko’p hollarda rezident programma loyihalash uchun OSning uzulish va uning funksiyalaridan foylaniladilar. Masalan, 33nchi (o’nlik sanoq sistimasida ) va un- ga mos 21H(o’noltilik sanoq sistimasida ) uzulishning 31Hfunksiyasisdan foyda-
lanish mumkin. Bu yerda 31H funksiya programma ishini tamomlagandan keyin to’xtatadi va xotirada rezident shaklida qoldiradi. Mazkur funksiyaga yuqori dara- jali tillardan (maslan, Pascal, Ci, Delphi) yoki asasembler vositalari yordamida ham murojaat qilish imkoniyati mavjud.
Masalan, bunday murojaatni assembler qismprogrammasi asosida quyidagi fragment yordamida tasvirlash mumkin.
PUSH ES ; Programma boshlanishini stekka yozib qo’yish.
……………………………………
POP AX ; Stekdan programma boshlanish adresini AX regstriga kiritish.
MOV DX, SEG ZZ ; ZZ programmasining yakunlanish adresini DX
registriga kiritish.
SUB DX, AX ; Programma uzunligini hisoblash. INC DX ; Uzunlikni 1 ga oshirish.
MOV AH, 31H ; 31H funksiya nomerini AH regstriga yuklash ya’ni rogrammani rezident shaklida xotirada qoldirish.
INT 21H ; 21H uzulishga murojaat qilish.
ZZ SEGMENT ‘ZZ’ ; ZZ programmasini oxiri ZZ ENDS ; Segment oxiri.
Bu qismprogramma yuqori darajali tilda yozilgan ixtiyoriy programma bilan birlashtirilib masalaning rezident nusxasini tuzish imkoniyatini beradi.
Aytib o’tish kerakkim, rezident programma tuzish murakkab masala bo’lib EHM arxitekturasi, assembler tili va tizimlli dasturlash asoslarini mukammal bilishni talab qiladi. Masalaning yana bir muammosi rezident programmani uz- ulishlarga e’tibor berishi va boshqarishni qaytarishi hisoblanadi. Bu muammolarni hal qilish uchun biz programmaga mashina kodlari va protseduralarda interrupt direktivalarini ishlatishimiz kerak. Rezident programmani taxlash ham o’ziga xos xususiyatlarga ega. Agar programma taxlash yoki ish jarayonida xato bersa, u holda SHK operatsion tizimini qayta – qayta yuklashga majbur bo’lamiz.
Do'stlaringiz bilan baham: |