Internet Derazalar Android
Kengaytirmoq

Dasturning blok tarkibi. Dastur tuzilmasini ishlab chiqish va modul dasturlash

61.1k.

Shuningdek, saytlar o'zlarining skeletiga ega. Ammo bu shifokorlarni so'rash befoyda. Ha, va veterinarlar sayt binosi haqida xabardor emaslar. Faqat velochonerlar muhokama qilindi. Bu ulardan kelajakdagi resurs skeletining tarkibi bog'liq. Va uning skeletining suyaklarini yaratishning asosiy usuli - bu bloklar tartibidir.

Sayt tartibi - bag'ishlangan hunarmandchilik

Sayt tartibida sirli narsa bor. Ammo bu hunarmandchilik bilan yaqinroq tanish bo'lmaguningizcha. Biz bag'ishlovimizni boshlaymiz:


Saytning keyingi bosqichi uning tartibini yaratgandan so'ng tartibdir. Vazifa - Xestovel hTML-dan foydalanish. CSS kodi va dasturxon stollari Soatning skeleti virtual Mir. Oddiy qilib aytganda, resursning o'lchamlari va nisbatlarini brauzer bilan tushunadigan shaklda o'tkazing.

Mashg'ulot jarayonida HTML-kod "skelet" saytida bo'lib o'tadi. A c. cSS-dan foydalanish. (uslublarning kaskadli jadvallari) "Suyaklar" ning o'lchami, rang va joylashuvi o'rnatiladi.

Bir nechta turdagi tartib mavjud:

I. Tablar - Oldinroq tartibning asosiy usuli bo'lgan. Taburlar tartibida Saytning tuzilishini sozlash

Va uning filiallari teglari. Jadvallardan foydalangan holda tartib sizga bir-birlariga nisbatan barcha dizayndagi barcha elementlarni mutanosib ravishda joylashtirishga imkon beradi. Ammo shu bilan birga, bunday kod juda katta hajmga ega:


Shuningdek, jadval kodining asosiy kamchiliklari uning uzoq yuklash va past darajada qidiruv tizimlari bo'yicha indekslash tarkibiga kiradi.

Sahifaning mazmuni, SENTE-STACE jadvali barcha ma'lumotlar yuklanmaguncha ko'rsatilmaydi. Bloklash tartibi har bir yuklangan mahsulotni alohida-alohida ko'rsatishga imkon beradi.

Yomon indekslash Tabami jadvallari jadvalning turli xil hujayralarida joylashgan matnli bloklar orasidagi katta bo'shliqlar bilan izohlanadi.

Endi stol qopqog'i kamdan-kam hollarda saytlar yaratishning asosiy usuli sifatida ishlatiladi. Endi u faqat jadval ma'lumotlari va grafik tasvirlarning joylashuvi uchun ishlatiladi.

II. Blok - hozirda maketning asosiy usuli. Taburlar blokirovkasidan farqli o'laroq, bir qator imtiyozlar mavjud:

  • Elementlarni ajratish hTML kod ;
  • Bir qatlamni boshqasiga olib ketish qobiliyati - bu ehtimollik asosan elementlarni joylashtirishga yordam beradi.
  • Qidiruv tizimlari tomonidan eng yaxshi indekslash;
  • Yuqori tezlikda mustaqil mustaqil elementlardan iborat sahifani yuklab olish sahifasi;
  • Yaratish oson vizual effektlar (dow-pastga menyular, ro'yxatlar, qalqib chiqadigan maslahatlar).

Bloklash tartibining asosiy noqulayligi ba'zi " noaniqlik»Uning kodini tushunish turli xil brauzerlar. Shuning uchun, HTML sahifalarga maxsus xakerlar yordamida "olib keling" kerak.

Bloklash tartibi bilan bunday tushuncha "o'zaro brauzer" sifatida tug'ilgan. Bir xil buyumning displeyidagi farq tufayli turli xil brauzerlar Savdogarlar barcha kod qismlarini Asosiy HTML (Xaki) kiritishlari kerak.

Hack ta'siri juda ixtisoslashgan va noto'g'ri displey muammosini faqat bitta brauzerda hal qiladi.

Bloklar tartibida qo'llaniladigan asosiy element bu yorliqdir

. Ushbu teg bilan ajratilgan kodning kodi qatlam deb ataladi. Barcha uslub echimlari HTML-kodning chegaralarida uslub varaqalarida amalga oshiriladi. Ularga kirish identifikatorlar yoki CSS sinflari orqali amalga oshiriladi:

Blokning tartibi qanday?

Sxeutni boshlashdan oldin PSD saytining tartibi grafik muharrir Bloklarni (qatlamlarga) kesish. Alohida papkada kesilgan fon rasmlariBu har bir qatlamga alohida biriktiriladi:


Masalan, fotoshopda yaratilgan saytning ushbu tartibini oling. Birinchi B. matn muharriri DV-dan foydalanib, biz kelajak resursining tuzilishini ko'rsatamiz va har bir qatlamga bir xil identifikatoringizni belgilaymiz. Bu shunday tuzilishga aylanadi:

Keyin HTML satridagi saytning tayyor tuzilishiga CSS faylini biriktiring. Shundan so'ng, har bir qatlamning stilistik tavsifini qo'shing, boshqa elementlarga va uning hajmiga nisbatan joylashtiring.

Hammasi bilan ko'proq o'qing cSS xususiyatlari Til uchun texnik hujjatlardan mumkin.

Misolning to'liq kodeksi inder.html:

Bloklash tartibiga misol

Tarkib

Style.css faylining mazmuni:

tana (fonadik: F3F2F3; Rang: # 000000; shrift-yuz: trebuchet ms, armiya, YANGI YANGI. Roman; Shrift o'lchami: 12px; ) #Continer (marj: 30px avtoulov; balandligi: 600px; # 66cxx; № 66ch999; lenta: 900px; balandligi: 20px ) #Menu (# 99ccc999; chapda; Lonat: 400px; balandlik: 400px;) Tushuncha (aniq: ikkalasi; ) #footer (fonadik: 0066ff; balandligi: 80px; kengligi: 900px;)

Shunday qilib, saytning blokdagi tartibda namunalari brauzer oynasiga ko'rinadi.

Protseduralar va funktsiyalar. Bloklash tuzilishi Dasturlar. Parametrlar.

Misol

Misol

Misol

A (10) haqiqiy raqamlar qatoriga beriladi. Tashkil qilmoq bu qator Uning elementlarini ko'tarib, ᴛ.ᴇ. Arrayning har bir keyingi elementi avvalgisidan ko'proq bo'lishi uchun qiling.

Eng muhimini ko'rib chiqing oddiy algoritmushbu turdagi vazifalar uchun ishlab chiqilgan (5-rasm).

Ushbu algoritmning g'oyasi aslida boshlang'ich massivning elementlari birinchi bo'lib, avval 2 1 s 2, keyinchalik 2 s dan 4 va boshqalarga o'xshaydi. Agar juftlikdagi birinchi element ikkinchidan ko'proq bo'lsa, unda birinchi element ikkinchisining qiymatini va ikkinchisining qiymatini oladi. Aks holda, hech qanday almashtirishlar juftlikda amalga oshirilmaydi va ikkinchi juftlik elementlarini taqqoslashga o'ting.

①, massiv oxirida eng katta elementning "italing" ning asta-sekin "itayishi" va algoritm funktsiyasi ichki tsiklni bajaradi. Arseyning eng katta elementi uni oxirgi 10-o'ringa olib borishi bilanoq, tartiblangan 9 elementdan iborat bo'lgan tartibda qolgan 9 elementning eng kattasi massivda bir necha marotaba punktni egallaydi.

Istalgan natijaga erishish uchun bunday protsedura to'qqiz marta amalga oshirilishi kerak, har safar ichki tsiklning takrorlanishi 1 ga kamayishi kerak.

Bu vazifa tashqi tsikl tomonidan hal qilinadi. Uning parametri 9,8,8,8,8,8,8,8,8,8,8,8,8, gacha ..., 1 ta takrorlashlar soni, balki bir vaqtning o'zida va eng katta qiymat Ichki tsikl parametri.

dastur Saralash;

var.

i, K: sumege. r;

b: haqiqiy ;

a: massiv. tarkibi ;

boshlanishi.

yozing ('Bir qatorni kiriting -');

uchun I: \u003d 1 ga 10 qilmoq. Readln (a [i]);

writeln ("Manba massi");

uchun I: \u003d 1 ga 10 qilmoq. Writeln (A [i [i] 5: 2);

uchun I: \u003d 9 pastga tushadi. 1 qilmoq.

uchun K: \u003d 1 ga I. dasta A [k]\u003e a keyin.

boshlanishi.

b: \u003d a [k]; A [k]: \u003d a; A: \u003d b

oxiri.

wRITITELN ("Buyurtmalangan massiv");

uchun I: \u003d 1 ga 10 qilmoq. Yozing (A [i]: 2: 2)

oxiri. .

(20 * 20) Dana matritsasi. (20) ni tashkil qilish uchun, ularning har bir elementi matritsa ustunining elementlari, asosiy diagonaldan tashqari elementdan tashqari. Tekshiruvlar va asl matritsaning ustunlari, noldan boshlanadi, 10 bilan indekslash vektorli elementlar.

Yangi qatorning shakllanishi (vektor) - bu o'z elementlarining qiymatlari ular uchun ajratilgan xotira katakchalariga yozuv. Vektorning har bir elementi sonining raqamli qiymati algoritmning ichki tsiklida shakllanadi va hujayraga yozuvlar ichki tsiklning bachadonining keyingi takrorlanishini tugatgandan so'ng tashqi hisoblanadi.

dastur Massiv;

b: massiv. tarkibi ;

c: massiv. tarkibi ;

p: haqiqiy ;

m, n: butun son ;

boshlanishi.

uchun M: \u003d 0 ga 19 qilmoq.

uchun N: \u003d 0 ga 19 qilmoq. Readln (b);

uchun N: \u003d 0 ga 19 qilmoq.

boshlanishi.

p: \u003d 1; uchun M: \u003d 0 ga 19 qilmoq.

agar M.<>n. keyin. (Ishni shakllantirish)

p: \u003d p * b; (matritsa ustunining elementlari)

(diagonaldan tashqari)

c: \u003d p; (Yozuv shakllangan)

(xotira hujayrasida vektor element)

oxiri. ;

uchun N: \u003d 10 ga 19 qilmoq. Writeln (C [n]: 10: 3)

oxiri. .

Haqiqiy elementlardan tashkil topgan Dana Matrix Matri (5 * 5). Maksimal va minimal elementlarni o'z ichiga olgan joylarda matritsa ipini o'zgartiring.

dastur Minmax;

tur

m \u003d. massiv. tarkibi ;

var.

mAT: massiv. . m;

maxi, Mini, i, I1, J1: butun son ;

boshlanishi.

yozing ('Matritsani kiriting -');

uchun I: \u003d 1 ga 5 dofor J: \u003d 1 ga 5 qilmoq. O'qish (mat);

i1: \u003d 1; J1: \u003d 1; (Minimal elementlarning ko'rsatkichlari)

i2: \u003d 1; J2: \u003d 1; (Maksimal ko'rsatkichlar indekslari)

uchun I: \u003d 1 ga 5 qilmoq.

uchun J: \u003d 1 ga 5 qilmoq.

agar Mat\u003e mat\u003e mat.

keyin.

boshlanishi.

i2: \u003d i; J2: \u003d J (yangi maksimal ko'rsatkichlarni eslang)

oxiri.

boshqa.

agar Mat.

keyin.

boshlanishi.

i1: \u003d i; J1: \u003d J; (yangi ko'rsatkichlarni eslang)

oxiri. ;

str: \u003d Mat; (Mat matritsali qatorini almashtirish)

mat: \u003d mat; (Maksimal tarkibi)

mat: \u003d ko'chasi; (element, minimal bilan satr)

(ism va aksincha)

uchun I: \u003d 1 ga 5 qilmoq.

boshlanishi.

uchun J: \u003d 1 ga 5 qilmoq. Yozish (MAT);

oxiri.

Dastur ikkita asosiy vazifalarni hal qiladi: matritsaning eng katta va eng kichik elementlari joylashgan satrlarni qidiring va ushbu satrlardagi ma'lumotlar almashinadi.

Birinchi vazifa - bu eng katta ichki qidiruv vazifasi yoki minimal.

Odatda, matritsaning maksimal va minimal elementlari aniqlangan, ammo ularning ko'rsatkichlari aniqlangan. Belgilar indekslarni saqlash uchun ishlatiladi i1, J1. - minimal element uchun va i2, J2 - Maksimal uchun.

Ikkinchi vazifani hal qilish uchun uchta tayinlash operatorlari qo'llaniladi, bunda matritsali spektakllar maksimal va minimal elementlar va yordamchi bitta o'lchovli massivlar bilan shug'ullanadi. ko'chasi.

< Что такое подпрограмма и для чего она нужна >

Paskalda subroutinlarning ikki turi mavjud: protseduralar va funktsiyalar. Ularning orasidagi asosiy farq shundaki, funktsiya qiymatni qaytaradi va iboralarda ishlatilishi mumkin, masalan:

jarayon bir yoki bir nechta vazifani bajarish uchun chaqiriladi:

Writeln ("Bu chek");

Protseduralar va funktsiyalar sizga asosiy dasturiy ta'minot birligida qo'shimcha bloklarni kiritishga imkon beradi. Jarayon yoki funktsiyaning har bir tavsifida dasturiy ta'minot blokidan keyin sarlavha mavjud.

Protsedura va funktsiyalar dasturning asosiy tanasi biron bir joyda paydo bo'lishi mumkin. Protseduralar uchun quyidagi format ishlatiladi:

jarayon. Jarayon nomi (parametrlar);

Vazifalar jadvaldan boshlanadigan protseduralar sifatida bir xil formatga ega funktsiya.va qaytarish funktsiyasi uchun ma'lumotlar turini tugatadi:

funktsiya. Funktsiya_name (parametrlar): ma'lumotlar turi;

Tajribalar va fuchlar o'zlarining doimiy, ma'lumotlar turlari, o'zgaruvchi va hatto o'zlarining protseduralari va funktsiyalari bo'lishi mumkin. Ammo bu elementlarning barchasi faqat ular aniqlanadigan protsedura va funktsiyalarda qo'llanilishi mumkin.

Jarayon protsedura operatori yordamida faollashtiriladi. Funktsiya qo'ng'irog'ini yoki qaytarilgan qiymatni o'z ichiga olgan iborani hisoblashda funktsiya faollashtiriladi va qiymat bu iboraga almashtiriladi.

Protseduralar va funktsiyalar. Dasturning blok tarkibi. Parametrlar. - tushuncha va turlar. "Protsessiyalar va funktsiyalar turkumining tasnifi va xususiyatlari. Dasturlar blokining tuzilishi. Parametrlar." 2017, 2018 yil.

4.8. Blokning tuzilishi.

Til "C" blok tuzilishi bilan til emas

le pl / 1 yoki algola; Buni ba'zi funktsiyalarda tasvirlab bo'lmaydi.

boshqalar ichida.

O'zgaruvchilar, boshqa tomondan, belgilanishi mumkin

blokni tuzish usuli. O'zgaruvchan tavsiflar (shu jumladan

choyni ishga tushirish) chap rasm qavsiga amal qilishi mumkin

kim har qanday operatorni ochadi, balki bu uchun emas

roy funktsiyaning tanasini boshlaydi. Bunday o'zgaruvchilar

birdaniga, tashqi bloklardan har qanday o'zgaruvchini boshqa joyga ko'chirish

bir xil ismlar va mos kelishga ishonch hosil qiling

o'ng raqamli qavs. Masalan, ichida

I st i; / * Yangi men * /

Uchun (i \u003d 0; i< N; I++)

O'zgaruvchining harakat maydoni "haqiqiy" filiali

Agar; Bu men dasturda boshqa men bilan bog'lanmayman

Blokning tuzilishi tashqi tomondan ta'sir qiladi

o'zgaruvchilar. Agar tavsif berilsa

Keyin x funktsiyasida x ning paydo bo'lishi F funn holatiga

menna ikki tomonlama turtashqi va tashqi o'zgaruvchiga F - tashqarida.

rasmiy parametrlarning nomlaridan to'g'ri keladi:

F ismi X ning Funktsiyasida rasmiy parametrni va

tashqi o'zgaruvchiga emas.

4.9. Initsializatsiya.

Biz hanuzgacha bir necha bor ilgari surdik, ammo

boshqa masalalar orasida har doim o'tish. Endi, keyin

qanday qilib biz turli xil xotira sinflarini muhokama qilsak, biz ushbu bo'limda

biz ishga tushirish bilan bog'liq ba'zi qoidalarni umumlashtiramiz.

Agar aniq topilmasa, tashqi va

o'zgaruvchan o'zgaruvchilar nolga beriladi; avtomat

va bu holatda o'zgaruvchilarni ro'yxatdan o'tkazing

bo'lingan qiymatlar (axlat).

Oddiy o'zgaruvchilar (qatorlar yoki tuzilmalar emas) bo'lishi mumkin

ism belgidan keyin qo'shimcha ravishda ularning tavsifi bilan tuzalish

tenglik va doimiy ifoda:

Char cquote \u003d "\\";

Uzoq kun \u003d 60 * 24; / * Bir kun ichida * /

Tashqi va statik o'zgaruvchilar uchun, ishga tushirish uchun

faqat bir marta, kompilyatsiya bosqichida. Avtomatik I I.

ro'yxatdan o'tish o'zgaruvchilar har safar kiritiladi

funktsiya yoki blokda.

O'zgaruvchilar avtomatik va ro'yxatdan o'tish, boshlang'ichizatsiya holatlarida

torus doimiy bo'lishga majbur emas: aslida u bo'lishi mumkin

aniq bir muhim ifoda kiritilishi mumkin

ilgari qadriyatlarga murojaat qilish va hatto xususiyatlarga murojaat qilish. Masalan,

3-bobdan INMINET DASTURI 3-BOB

shaklda qayd etiladi

Int yuqori \u003d n - 1;

Int past, yuqori, o'rta;

Uning natijalariga ko'ra, avtomatik o'zgartirishni amalga oshirish

topshiriq operatorlarining qisqartirilgan yozuvlari mavjud.

Qaysi shaklni afzal ko'rish - asosan ta'mga bog'liq. biz odatda

biz aniq topshiriqlardan foydalanamiz, chunki ishga tushirish

ta'rif kamroq sezilarli.

Avtomatik massivlar ishga tushirilmaydi. Tashqi

va statik qatorlar joylashtirish orqali ishga tushirilishi mumkin

ta'rifdan so'ng, jingalak qavslarda ilova qilingan ro'yxat

vergul bilan ajratilgan toza qiymatlar. Masalan, dastur

belgilarni 1-bobdan sanab chiqadi

Int c, i, nwit, xo'ppoz;

Nwhit \u003d emother \u003d 0;

Uchun (i \u003d 0; i< 10; I++)

Bu shaklda qayta yozilgan

Int ndgit \u003d (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

Asosiy () ni hisoblash, raqamlar, oq bo'shliq, boshqalari * /

Ushbu ishga tushirish aslida kerak emas, chunki barcha topshiriqlar

qadriyatlar nolga teng, ammo yaxshi uslub - ularni qiling

ravshan. Agar dastlabki qiymatlar soni kamroq bo'lsa

massiv o'lchami, qolgan elementlar bilan to'ldiriladi

sherlar. Ham ro'yxat katta raqam Dastlabki qiymatlar

xato. Afsuski, bu mumkin emas

ba'zi bir boshlang'ich ma'no takrorlanadigan ko'rsatmalar va

massiv orolida elementni kiritish mumkin emas

avvalgi barcha a'zolar.

Ramblik qatorlar uchun maxsus usul mavjud

ishga tushirish; Jingalak qavs va vergul o'rniga siz foydalanishingiz mumkin

satrdan foydalaning:

Char naqsh \u003d ""

Bu uzoqroq qisqartirish, ammo unga tenglashtirilgan yozish:

Char naqsh \u003d ("h", "E", "\\ 0");

Agar biron bir turdagi massivlar qolsa, kompilyator aniqlanadi

uning uzunligi bo'yicha deklaratsiya, boshlang'ich qiymatlar sonini hisoblash. Ichida

ushbu aniq holat - bu to'rttaga teng (uchta belgi)

ortiqcha chekit \\ 0).


Asoslar. Shu bilan birga, tilning falsafiy mavhumlari asosiy mavzular va umuman falsafaning harakatlari bilan chambarchas bog'liq. Xususan, an'anaviy ravishda oddiy tilni AFni tahlil qilish doirasida sezilarli ravishda ko'rib chiqilgan, ayniqsa "inson", "tinchlik" degan fikrlari, ayniqsa aqlli ta'limotning chuqur ta'sir ko'rsatdi. Men "tashqi dunyo", "...

Va boshqa MDH mamlakatlari, shuningdek rus va jahon madaniyati va fanidan foydalanishni osonlashtirish. Shunday qilib, bizning tadqiqotimiz ma'lumotlariga ko'ra respublikada rus tilining talabi yuqori bo'lib qoldi. Zamonaviy Moldaviyalik yoshlarning ko'plab vakillari, ota-bobolari va bobolari Rossiya madaniyati, ilmiy va texnik yutuqlariga erishmoqdalar. Rus tili tili ...

Mayli og'zaki bo'g'inlar. O'rta Elam davri yodgorliklari (mil. Avv. 14-12 asr) Akkadoza toza uchi tomonidan qilingan. Novoelanian davr yodgorliklari 8-6 asrlarga tegishli. Miloddan avvalgi. U 6-4 sentnerda Axemenidovning Fors shtatida rasmiy tili edi. Uning taxmin qilinishicha, erta o'rta asrlarga saqlanib qolgan qadimgi parsida ta'sir qiladi. 7. Burusa tili haqida Buruski (...

... / dialektikoz), Scytisi, So'g'dskiy, Tojik, Tojirisskiy, Talysh, Tatgulisskaya, Yagnobskiy, Yazgunlikiam va boshqalar. Ular indoran filialiga tegishli hind-evropalik tillar. Tarqatish joylari: Eron, Afg'oniston, Tojikiston, Iroq, Turkiya, Pokiston, Hindiston, Gruziya, Rossiya Federatsiyasi. General ...

Modul - bu bir-biriga bog'langan o'zgaruvchilar, konstanta, funktsiyalar va har kimni amalga oshirish uchun mo'ljallangan dasturning funktsional mustaqil qismidir funksionallik. Modul boshqa dastur modullaridan mustaqil ravishda va shu bilan tartibga solish mumkin birgalikda ish Bir nechta dasturchi modullarga kiritilgan bir nechta dastur.

Modullar yordamida siz manba va ob'ekt kodi shaklida saqlanishi mumkin bo'lgan havout kutubxonalarini yaratishingiz mumkin (qo'shma kompilyatsiyaga va boshqa modullarni birlashtirish uchun tayyor bo'lgan kod). Delphi-da modulning tuzilgan ob'ekt kodi ".DPU" uzaytiriladigan fayllarda saqlanadi.

Modulning tuzilishi Paskalda dasturning tuzilishiga o'xshash. Modul uchun sarlavha talab qilinadi va blokirovkadan (dastur o'rniga odatdagi dasturda) boshlanadi:

Birlik.<имя модуля>;

Modul nomi Fayl nomiga Paskalda mos kelishi kerak. Delphi boshqa modullarni avtomatik ravishda ishlab chiqarganda, modulning nomi fayl nomiga to'g'ri keladi.

Dasturdan farqli o'laroq, modulning tanasi (operatorlarning qismi) yo'q bo'lishi mumkin. U modul o'zgaruvchilarini ishga tushirish va asosiy dasturiy operatorlarni bajarishdan oldin amalga oshiriladi. Modul ikkita majburiy qismni o'z ichiga oladi: interfeysi va ijro etuvchi.

Modulning interfeysi ochiq deb nomlanadi va ijroiya yopiq. Interfeys qismida e'lonlar ko'pincha ochiq interfeys deb nomlanadi va reklama bo'limidagi reklamalar yopiq interfeys. Interfeysda e'lon qilingan barcha o'zgaruvchilar va funktsiyalar ushbu modulni ulaydigan barcha modullar va dasturlar uchun mavjud. Ijnator bo'limida e'lon qilingan barcha o'zgaruvchilar va funktsiyalar faqat ushbu modulda mavjud. Bunday bo'linish ilova joylari Foydalanuvchidan yashiringanligi va beparvolik yoki qasddan buzishi mumkin bo'lgan hisob-kitoblarning oraliq bosqichlari. Bu taqdim etiladi ishonchli himoya faqat mo'ljallangan barcha funktsiyalar va o'zgaruvchilar ichki foydalanishBu har doim ham qulay bo'lmasa ham, siz yozishingiz kerak qo'shimcha funktsiyalar Ichki parametrlarga kirish uchun.

Interfeysning qismi so'z interfeysi bilan boshlanadi. Interfeys orqali asosiy dastur boshqa modullar bilan modul yoki modul bilan bog'liq. Ushbu modulning har qanday foydalanuvchilari uchun ishlatiladigan narsalar (protseduralar, funktsiyalar, o'zgaruvchilar, kontsentantlar, turdoshlar, turdoshlar) ko'rsatilgan.

Modulning protseduralari va funktsiyalari orasida Modul ishlab chiqaruvchisi interfeys tavsifiga kiritilmasligi mumkin, keyin ular foydalanuvchilar tomonidan yashirin bo'ladi va moduldan tashqarida foydalanish mumkin emas.

Agar modul boshqa modullarning boshqa modullaridan (protseduralar, funktsiyalar, o'zgaruvchilar foydalansa, bu ishlatilgan barcha modullarning nomlari ko'rsatilgan holda, masalan, ko'rsatilgan barcha modullarning nomlari ko'rsatilgan :

M1, m2 ...;

Keyinchalik, interfeysda, konstantalar, turdagi, o'zgaruvchilar, ushbu modulni chaqirish paytida ishlatilishi mumkin bo'lgan tartib va \u200b\u200bfunktsiyalar tasvirlangan va protseduralar va funktsiyalar tanasiz va funktsiyalar sarlavhalar va funktsiyalar tanasiz ko'rsatilgan. Tana protseduralari, keyinchalik modulning yopiq - ijro etuvchi qismida tavsiflanadi. Interfaistik qismida sharhlar yordamida interfeys qismining har bir elementi, barcha parametrlar, konstantalar va turdagi modul foydalanuvchilari uni osongina ishlatishlari uchun barcha parametrlar, konstantalar va turlar uchun barcha yo'nalishlar, barcha parametrlar, konstantalar va turlari uchun hujjatlashtirilgan barcha yo'nalishlar mavjud.

Interfeysning qismi ijroiya qismining boshlanishi bilan yakunlanadi. Ijroiya qismi so'z so'zlarini amalga oshirish bilan boshlanadi. Unda interfeysda keltirilgan barcha protseduralar va funktsiyalarning jasadlari mavjud. Unda operatorlarning xususiyatlari va qismlarining mahalliy yorliqlari kirishi mumkin. So'zni amalga oshirish, shuningdek, so'zni bajarishi mumkin bo'lgan modullar ro'yxati bilan foydalanilishi mumkin. Quyidagi yorliqlar, turlar, konstansiyalar, o'zgaruvchilar, protseduralar va (modul lub tili)

Ijrochi qismdan keyin kalit so'zni ishga tushirishdan boshlab ma'lumotlarni initalizatsiya qilishning ixtiyoriy qismiga rioya qilish kerak. Unda operatorlar birinchi navbatda modulga murojaat qildilar,

Modul oxirida tugatishning ixtiyoriy qismi modul operatsiyasini har qanday tugatilganda amalga oshiriladigan yakuniy so'zdan boshlab, yakunlanadigan kalit so'zdan boshlanadi. Modul tugadi kalit so'z "OXIRI." Oxirida majburiy punta bilan.

Modulning tavsifi qisqacha sintaksisi quyidagicha ko'rinadi:

Agar o'zgaruvchilar turli modullarda ishlatilsa, o'zgaruvchan modulga kirish uchun prefiksdan foydalanish kerak:

<имя модуля>. <имя переменной>.

Masalan 10.1. Modullarning o'zaro bog'liqligi ehtimolini ko'rib chiqing. Agar siz modullarga bir-birining ichki elementlaridan foydalanishga ruxsat bersangiz, dastur qisqartirilishi mumkin.

belgilash "\u003e Yoki ko'p darajalar modullari o'rtasidagi yaqin munosabatlar (yoki o'rta darajadagi modullar o'rtasidagi yaqin munosabatlar) va bu holda ularni alohida ishlatish mumkin emas, bu modulli dasturlash tamoyillarini buzadi.

Agar siz interfeys bo'limlarida kesib o'tsangiz, kompilyator xatoni tuzatadi. Modullarning o'zaro aloqasi faqat amalga oshirish bo'limlarida amalga oshirilishi mumkin, ammo modullarning o'zaro bog'liqligi tufayli oldini olish yaxshiroqdir.

Odatda, dasturlarni loyihalashda, modullar bo'yicha loyihani ajratish rivojlanishning boshida sodir bo'ladi dasturiy ta'minot tizimi. Bu jarayon modulizatsiya deyiladi. Qoida tariqasida, loyiha tahlilchisi va uning guruhi bu bilan shug'ullanadi. Modulning o'lchami 30-300 qatorlar oralig'ida o'zgarishi mumkinligiga ishoniladi. Sarlavhadagi (boshida) Fikr modulidan foydalanish orqali modulning ravshanligi sezilarli darajada yaxshilanadi batafsil tavsif Uning vazifalari. Brifingda sarlavha sharhlarini o'qish kifoya, deyarli matnning qolgan qismiga e'tibor bermayapti.

Odatda, modulyatsiya natijasi modullar va (yoki) quyi tizimlarning o'zaro bog'liqligining grafikasi sifatida tasvirlangan. Ushbu grafikning asoslari ("ildiz") asosiy dastur. Grafikning har bir verteksi modul, va yas uchuvchilarni bog'laydigan versular modullarning o'zaro munosabatlarini o'zlari bilan bog'laydi.

Grafikning uchlari yaqinida, Modulning sharhlarida batafsilroq tasvirlangan modulning ochiq qismida batafsilroq tasvirlangan modulning ochiq qismida e'lon qilingan modulning ochiq qismida e'lon qilingan tartibda e'lon qilingan va o'zgaruvchilar ko'rsatilgan to'liq tavsif Interfeys interfeysi. Yuqoridagi yoylarga bog'langan (odatda ota-ona) modulda ishlatiladigan ismlar buyurilgan. Bunday holda, ulanish o'zaro bo'lishi mumkin, i.e. Module Modulning interfeysi elementlaridan foydalanadi va. Aksincha, B moduli A. Modulning Modulli elementlari interfeys elementlaridan foydalanadi, chunki ular allaqachon aytib o'tilganidek, bunday dizayn keraksizdir, ammo ehtimol. Bunday holda, ishlatilgan interfeys elementlari yuqorida va yoyda modullarni bog'laydigan. Biz bunday grafikka misol keltiramiz (10.1-rasm)
).

Bu erda P asosiy dastur M1, M2, MV-ning asosiy moduliga bo'linadi. Ushbu modullardan boshlab A, b, c (birinchi moduldan), D, G, K, L (Uchinchi moduldan) interfeys elementlaridan foydalanadi. Ushbu modullarning har biri kichikroq, masalan, m2 m2.1, m2,3 va boshqalarga bo'linadi. Masalan, ushbu sxemadan m2 va m3 modullari, shuningdek M2.2 va M2.3 orasidagi havolalarni kesib o'tadi.

Modulyatsiyani tugatgandan so'ng, har bir modul mustaqil ravishda kodni yozish va disklash uchun dasturchilar o'rtasida kodlash uchun tarqatiladi. Biroq, bunday hollarda vaziyat ko'pincha bolalar modullarining protseduralari va funktsiyalaridan foydalanganda, ammo qiz modullari boshqa dasturchilar tomonidan hali kodlanmagan. Masalan, K bola modullaridan l, modullardan MZ modulida ishlatiladi, ammo bu modul hali tayyor emas. MZ Modul kodini qanday amalga oshiruvchi dasturchi? Ushbu vaziyatdan chiqish "Plug" protseduralari (yoki funktsiyalari) ni yozish orqali amalga oshiriladi, ular nomi va parametrlari elementlarga to'liq mos keladigan "L. vilkasini to'liq almashtirishga imkon beradi .

"Plug" - protsedura aniq sarlavha spetsifikatsiyasi (nomi va parametrlari) va bo'sh tanaga taqdim etiladi. "Plug" - funktsiya sarlavha spetsifikatsiyasi (ism va parametrlar) bilan ifodalanadi va funktsiyaning qiymatini qaytaradigan faqat bitta operatorga ega. Masalan, tana plage funktsiyasi l bo'lishi mumkin:

formula "SRC \u003d" http://hi-du.ru/e-books/xook691/ripils173.gif "chegarasi \u003d" ABRMMEMRIDREMLET \u003d "ALL" Alt \u003d "

Yaxshi modullar bilan birlashma bilan, qoida tariqasida, daraxt, interfeys elementlari daraxtning yuqori darajadagi tugunlariga qarab interfeys elementlaridan foydalaniladi. Biroq, bu har doim ham mumkin emas va grafikani tahlil qilish va optimallashtirish kerak. Modulyatsiya natijalari sifatini tahlil qilish uchun ikkita xususiyat ishlatiladi: modul ulanishi va quyida ko'rib chiqilgan modullarning yopishishi.

Ulanish moduli sifatida belgilangan mustaqillik o'lchovi modul qismlarining tarkibiy qismlari. Modulning ulanishi qanchalik baland bo'lsa, dizayn natijasi yaxshiroq. Ulanish turlari (qavs ichida ulanish kuchining koeffitsienti bilan ko'rsatilgan):

  • funktsional (kuchli aloqada) - 10;
  • ketma-ketlik - 9;
  • kommunikativ - 7;
  • protsessual - 5;
  • vaqtinchalik - 3;
  • mantiqiy - 1;
  • tasodif (zaif ulanish) - 0.

C. moduli funktsional ulanish Uni boshqa ikki turning ikkita bog'lanishiga aylantirib bo'lmaydi. Modulda kirish-chiqish oqimlarini boshqarish uchun subutinlar mavjud bo'lsa va u ushbu ma'lumotlarni qayta ishlashning asosiy qismiga ega, moduli yagona funktsional vazifani bajaradi. Qoida tariqasida, bunday modul bitta tsikl shaklida operatsiyalar ketma-ketligi bilan amalga oshiriladi va funktsional birlashma mavjud.

Moduli izchil bog'liq Uni mustaqil funktsiyalarni bajaruvchi, ammo bitta funktsiyani birgalikda amalga oshirish uchun uni ketma-ket qismlarga bo'lish mumkin. Agar bir xil modulni baholash uchun ishlatilsa va keyin ma'lumotlarni qayta ishlash uchun u izchil bog'liq bo'lsa. Serial ulangan modul operatsiyalar ketma-ketligi yoki tsikllar ketma-ketligi sifatida amalga oshiriladi.

Agar modul ma'lumotlar tuzilishini ajratib turadigan mustaqil modullardan iborat bo'lsa, unda u mavjud muqobik bog'liqlik. Ma'lumotlarning umumiy tarkibi o'z tashkiloti yagona modul sifatida asosidir. Agar modul kompleks ma'lumotlar tuzilmasi bilan ishni soddalashtirish uchun ishlab chiqilgan bo'lsa, ushbu tuzilmani ajratib oling, u kommunikatient ulangan. Ushbu modul bir nechta turli xil va mustaqil foydalaniladigan xususiyatlarni amalga oshirish uchun mo'ljallangan (eslash va ma'lumotlarni qidirish). Agar modul algoritmlarni tanlash izolyatorini ajratib qo'ysa, u funktsional bog'liqlik mavjud. Bunday modul ma'lumotlarni ajratilgan tuzilish bilan ishlay oladi, ammo qo'ng'iroq faqat funktsiyani bajaradi deb hisoblanadi. Dastur ierarxik tuzilishining eng yuqori darajali modullari funktsional yoki izchil kodir bo'lishi kerak. Ta'mirlash modullari uchun (yordamchi), kommunikativ bog'liqlik afzalroq. Agar modullar protsessual, vaqtinchalik, mantiqiy yoki tasodifiy aloqada bo'lsa, bu etarli darajada o'ychan rejalashtirishni anglatadi. Mavjud dasturni o'zgartirish ko'pincha bu bog'liqlik turlariga olib keladi.

Protsessual bog'liqlik U modulda, boshqaruv tarkibiy sxemasi asosida tashkil etilgan boshqaruv tuzilmalarida uchraydi. Modulning bunday tarkibi nazorat translyatsiyalariga muvofiq ravishda paydo bo'lishi mumkin, ammo ajralish nuqtalarini tanlashda har qanday funktsional asosni aniqlamasdan amalga oshiriladi. Agar modul o'lchovlarni kamaytirish uchun ikkita mustaqil modulga bo'linsa (bittasi protseduralar va ma'lumotlarning reklamalarini qayta ishlash uchun mo'ljallangan bo'lsa, ikkinchisi esa boshqaruv tuzilmalarini amalga oshirish uchun), ularning har biri protsessual aloqada bo'ladi. Dastlabki modul boshqa bir nechta modullarga (qoida tariqasida, uch-to'rtga) ishora qiladigan eng yaxshi echim deb hisoblash kerak. Ularning har biri turli funktsiyalarni bajaradi.

Parchalar tarkibidagi modul funktsional jihatdan beparvo, ammo bir vaqtning o'zida zarur bo'lgan ishlov beriladi vaqtincha ulanish (Class ulangan). Kirish vaqtida talab qilinadigan barcha belgilangan barcha funktsiyalar amalga oshirilganda holatlar mavjud. Dasturning boshida faollashish va boshqa dasturiy holatni dastur oxirida passiv holatiga o'tkazish o'rniga, funktsiya turli modullar o'rtasida taqsimlanishi kerak.

Agar operatorlar modulda faqat funktsional o'xshashlik asosida aniqlansa (agar barcha operatorlar ma'lumotlarni o'qishga yoki yozishga mo'ljallangan bo'lsa) va almashtirish algoritm modul parametrlarini sozlash uchun ishlatiladi. Ushbu modul bor mantiqiy bog'liqlik Bu qismlarni namoyish qilmaydi, lekin o'zlari orasida ozgina o'xshashlik bor, masalan, xatolarni qayta ishlash uchun turli xil tartiblardan iborat modul. Boshqa tomondan, agar biron bir xato xabarlarini yozib olish uchun yaratilgan modul, agar u bilan barcha chiqish xabarlari bo'lsa, barcha chiqish ma'lumotlarini olish mumkin bo'lsa, kommunikativ ulanish mavjud.

Agar modul operatorlari o'zboshimchalik bilan birgalikda birlashtirilgan bo'lsa, masalan, xotira zonasiga joylashtirishni ko'rsatganingizda, bunday modul bor chalkashlik tasodif.

Agar uchta kuchsiz ulanish turadi, qoida tariqasida, dasturning noto'g'ri dizayni natijasida, shuning uchun funktsional, izchil, kommunikativ yoki protsessual aloqaga erishish kerak.

Debriyaj modullari sifatida belgilangan modullarning nisbiy mustaqilligini o'lchash. Mustaqil modullar boshqa modullarni o'zgartirishsiz o'zgartirish mumkin. Zaif debriyaj yanada orzu qilingan Bu modulning mustaqilligi yuqori darajada ekanligini anglatadi. Agar ularning har biri boshqa narsalar to'g'risida ma'lumot bo'lmasa, modullar umuman mustaqil hisoblanadi. Boshqa modullar haqida ko'proq ma'lumotlarda ularda ular mustaqil va bulutli bo'lganlar haqida ko'proq ma'lumot. Bunday ma'lumotlar modullarning ismlaridan foydalanish natijasida paydo bo'lib, ular deb nomlangan ketma-ketlikni belgilash natijasida, shuningdek, umumiy xotira mintaqalari belgilab olingan ma'lumotlardan kelib chiqadi. Ko'rinib turibdiki, ikkita bog'langan modullarning o'zaro ta'siri, boshqalarda ishlab chiqarilgan o'zgarishlarga qarab, bitta modulni kerakli darajada o'zgartirish kerak. Modullarning katta izolatsiyasi va bevosita o'zaro ta'siri, boshqalarda xatolarni yo'q qiladigan bitta moduldagi o'zgarishlar chegaralarini aniqlashda qiyinchiliklarga olib keladi. Quyida modullarning namunaviy o'lchovlari (boshqa debrislarning turli manbalarida turli xil manbalarda) (10.1-jadval).

Ko'pincha katta dasturlarda yordamchi algoritmlarni amalga oshirish uchun subboshivlar qo'llaniladi. YAda subroutinlar protseduralar shaklida amalga oshiriladi.

Jarayon tavsifi

(foiz nisbati) Procet (tana foizi) (foiz nomi) Qayerda (foiz nomi )i - ikki marta takrorlashi va protseduraga shikoyat qilish uchun ishlatilishi kerak; (parametr) ikkita qiymatdan birini olishi mumkin - (standart) yoki . Yopish tartibini yopish uchun, shuningdek, siz tavsiflangan buyruqlar segmentiga ham murojaat qilishingiz mumkin. Uzoq (tashqi) protsedura uchun siz har qanday dastur buyrug'i segmentlariga, shu jumladan u tavsiflangan joydan bog'lanishingiz mumkin. Jarayonda ko'rsatilgan ism va teglar uning ichida mahalliylashtirilmaydi, shuning uchun ular dasturda noyob bo'lishi kerak . Boshqa bir protsedura tavsiflash mumkin bo'lsa-da, hech qanday foyda keltirmaydi va odatda ishlatilmaydi.

Challenge protseduralari

YADA, asosiy dastur o'rtasidagi barcha o'tishlar va protsedura o'zlari tomonidan tashkil etilishi kerak. Agar dasturni protseduradan qaytarish mumkin bo'lsa, uni JMP protsedura nomi (foizi) deb atash mumkin, agar sizga qo'ng'iroq qilish dasturiga qaytish kerak bo'lsa, qo'ng'iroq qilish buyrug'iga (foiz) qo'ng'iroq qilish oson (foiz ) So'ngra protseduraning tanasida qaytish buyrug'i bo'lishi kerak, yana bir funktsiya mavjud: stakan yordamida qaytish manzilini eslab qolish va o'tish buyruqlarini qaytarishni tartibga solish. Jarayonni chaqirish paytida uzatiladigan protseduralarni hisobga olish va uning joylashuvi qo'ng'iroq punktiga nisbatan, ya'ni Qo'ng'iroqlar buyrug'iga o'tish turi avtomatik ravishda belgilanadi, masalan (protsedura uchun p). P call p Agar bu yaqin qo'ng'iroq bo'lsa (yaqin), shundan so'ng quyidagi harakatlar ishlab chiqariladi: stack: \u003d AV - bu qaytish manzili, i.e. Qiyinchilikdan keyin buyruqning samarali manzili; Amaliy (uzoq) harakatlar: \u003d cs, stack: \u003d AB, CS: IP-ni o'zgartirish to'g'risidagi atributni belgilashingiz kerak Ptr operatori. masalan, Uzoq pTt-ga qo'ng'iroq qiling Uzoqqa qo'ng'iroq qiling

Segmentdagi protseduralar joylashuvi

    Ichki protseduralar Qo'ng'iroq qiluvchi bilan bir segmentda.
Shu bilan birga, 3 variant mumkin: a) barcha protseduralar asosiy (sabablar) dasturidan ancha oldin joylashtiriladi, bu esa protsedura sifatida bezatilishi mumkin. Masalan: Matn segmentining "kodi" deb taxmin qilinadi: Matn, DS: SHACT A1 Proke A1 Protect ... Axt AX, AXTP Asosiy AX, AXRAP matni ma'lumot segmentini tugatadi. .. Ma'lumotlar stack segmentini tugatadi ... stack tugaydi № Asosiy protseduralar qo'ng'iroq nuqtasidan past. c) protseduralar - asosiy protsedura ichida, protsedura boshqa protsedura ichida (hech qanday foyda keltirmaydi) Masalan, ... asosiy prokul ... A1 ga qo'ng'iroq qiling, C400HR R400HR 21H A1 Proce ... CRET A1 En1 Enterp Asosiy end matn yakunlanadi. Tashqi protseduralarboshqa segmentlarda yoki boshqa fayllarda joylashgan. Masalanp, asosiy dastur matni P.Azm Matn segmentida "Kodeksi" faylida joylashgan; Modullarni ketma-ket birlashtirish; CS Umumiy segmentda: Matn, DS: Ma'lumotlar, SS: Stack STOP: PROP; Tashqi nomi STRET ... START STEATSI STACT STACK-ni tugatadi ... Schackning stakanligini tugatadi. Segment jamoat "kodi" deb taxmin qilinadi CS: Matnning ommaviy to'xtash joyi; Tashqarini to'xtatish uchun mavjud bo'lgan nomni e'lon ...

Endp matn tugashini to'xtating; Faylning tugashi Kirish nuqtasiz, ushbu fayllarning kombinatsiyasi maketning bir bosqichida sodir bo'ladi, I.E. Kerakli efir talab qilinadi. Masalan, yaxlit / zi p1 uchun, zi - u erda manba modulining (IM) raqamlari va belgilari haqida to'liq ma'lumot berish imkoniyati mavjud bo'lgan variant. Pr.Obj va P1.OBJ-ning shakllanishidan so'ng, ularni bitta yuklanadigan havolani / C0 PR P1, C0 ma'lumot uzatish imkoniyati mavjud bo'lgan varaqli ma'lumotlarni uzatish imkonini beradigan varaqli ma'lumotlarni uzatish imkonini beradigan tanlov faylidir. ekrandagi teglar va sharhlar. Comoz.exe moduli ijro etishga tayyor. Mumkin jarayonni kutubxonadan ulang. Buning uchun, segmentlar oldida ko'rsatma beriladi (kutubxona fayl nomi) Masalanp, io.azm faylini ulash uchun, "Stack" ni o'z ichiga olish uchun "Stack" Staction "Stack's" Staction "Stapment" Diss CS-segment "S., deb taxmin qiling: DS: D ni boshlang: ... ... V uchi tugash boshlanadi

Tajribalar orasidagi parametrlarni (dasturchi iltimosiga binoan tashkil etilgan)

    Parametrlarni MP registrlari orqali o'tkazish
Siz haqiqiy parametr qiymatlarini DMP dasturi so'rovida MP ro'yxat orqali o'tkazishingiz mumkin. masalan; Bazni hisoblash tartibi: \u003d maksiv (AX, BX) Maks Cmp abonent, bx fak1 bux AX, bx max1: ret max1p ...; Asosiy protsedurada ... AX, A; BX, B moliklarini tayyorlash; Call Call C, CAC C, Axt Protsedriga qo'ng'iroq qilish; Natijalarni saqlash ...
    Muloqot orqali parametr uzatishamaldagi parametrga mos keladigan xotira kamerasining manzilini (ismini) yuborilishini anglatadi (belgilangan qiymatni Paskalda). Buning uchun siz xotira katakchalarining nomi yoki manzilni ro'yxatdan o'tishdan oldin foydalanishingiz yoki manzilni yuklab olishingiz mumkin (BX, BP, Si yoki Si ushbu registrlarni manzilga ishlatishi mumkin).
masalan, jamoa lea bx, b qo'ng'iroq ......
    Stack orqali parametrlarni o'tkazish.
Parametrlarni ro'yxatga olish orqali parametrlarni berish ular bilan cheklangan. Agar ko'plab parametrlar bo'lsa (5 dan ortiq) bo'lsa, ular stack orqali uzatiladi: - asosiy dastur stackda haqiqiy parametrlar (qiymatlar yoki manzillar) yozadi; - protsedura ustunda qayd etilgan parametrlarni ishlatadi. Masalan: ; P (A1, ..., AK) Qo'ng'iroq qiling A1 ... Push com qo'ng'iroq p bc call pute ... protseduraning boshida BF qiymatidan foydalanishingiz mumkin qo'ng'iroq dasturida ishlatilgan, ya'ni ; Protsedura boshlanishi p-pushni BP; BP CAL BP, SP; Bpp-ni stackning yuqori qismiga sozlash ... Keyin siz asosiy manzildan foydalanishingiz mumkin. Masalan, yaqin qo'ng'iroq uchun, stack-da ko'rsatilgan qaytish manzili avtomatik ravishda oxirgi AK parametrining manzili. Jarayondan qaytishdan oldin, siz pop BP buyrug'i bilan BF buyrug'ini tiklashingiz kerak, so'ngra protseduralar takrorlanmasa, uzatilgan parametrlardan to'pni tozalang, ya'ni I.E. SP qiymatini o'rnating, protsedurani chaqirgandan so'ng, 2 * K ko'proq. Jarayondan to'g'ri qaytarilishning 2 imkoniyatlari mavjud. a) SP qo'ng'iroq qiluvchi dasturiga sozlash
; Protsedura tugashi ; Qo'ng'iroqlar dasturida
Pop BP. Qo'ng'iroq qilish
Ret. SP, 2 * k; Sp. Tuzatish
P enp.
b) To'plash buyrug'idan foydalaning (CNT) peshtaxta (CNT) peshtaxta (CNT) bo'lgan joyda (CNT), so'z o'lchami. Buyruq quyidagi amallarni amalga oshiradi: IP: \u003d STACP SP: \u003d SP + (CNT) Keyin uzoq masofali qo'ng'iroq qilish uchun 2 * kp enp qaytarish buyrug'i ( CNT) quyidagilarni ko'ring va bajaradi: IP: \u003d Stack CS: \u003d Stack SP: \u003d SP + (CNT) Ushbu protsedura dasturida qaytarilgan holda, qo'shimcha harakatlar talab qilinmaydi.
    Jarayonga kirish paytida registrlarni tejash muammosi
Shunday qilib, protsedura qo'ng'iroq dasturida ishlatiladigan ro'yxatdagi ro'yxatga kiritilmaydi, u stakandagi "eski" qiymatni tejash uchun har qanday reestrdan foydalanishdan oldin, har qanday registrni ishlatish uchun har qanday registrni ishlatishdan oldin talab qilinadi Jarayon, barcha saqlangan qiymatlar tiklanadi. masalanAgar CH protseyron bo'lsa, u stekda saqlanishi kerak, ammo stek faqat so'z bilan eslaydi, shuning uchun protsedura parcha bo'ladi: "eski" cx CX, 0; Protseduradagi CX-dan foydalaning ...; Pop CX protsedurasidan chiqishdan oldin; "Eski" CX ta'mirlash, shu bilan rasmiylashtirilgan sxema-ni ro'yxatdan o'tkazadi va ro'yxatga olingan parametrlar orqali parametrlar va stack orqali uzatiladi

(foiz nomi) Proce

Texnik xizmat ko'rsatish uchun BP-ni bosing

MOW BP, SP Stack

Savdo registrlari

tartibda ishlatiladi

tana foizi

Ror ... Rejlarni tiklash

Ror BPni tiklash BP