Мысал 5.1
5.6 Сурет статикалық бөлу схемасын пайдаланып іске асыруды көрсе-
теді. Бағдарламаның негізгі және кіші ТАБУ_MAKS бөлек құрасты-
рылған деп есептейік.
Негізгі бағдарлама және бағдарлама ортақ жалпы блок тұратын айны-
малы МАКС және тіркелген массив өлшемімен 4. Негізгі емес пайда-
ланылатын бірлесіп айнымалы I және –J болып табылады. Бағдарлама
НЕГІЗГІ деректер жалпы алқабындағы М оқиды, содан кейін ТАБУ _
МАКС бағдарламасы тудырады. Бағдарлама ТАБУ _МАКС максимум
массивінің М табады және жалпы блок бірлесіп пайдалану үшін маңы-
зы бар айнымалы МАКС пайдаланады.Төмендәрежелі коды жадқа тура
рұқсат көрсеткендей, d[] пайдаланады, және ығысу қол жеткізу үшін
элемент массиві әдісін қолданады.
Негізгі бағдарламада компиляциядан кейін, айнымалы мекен-жайы М
[1]-М [4] дейін болып табылады тиісінше d [0] - ге d [3] дейін, ал айны-
малы МАКС ұяшық жады d [4] сәйкес келеді, және жергілікті айныма-
лылар І және J сәйкесінше d [5], d [6] жад ұяшықтарына сәйкес келеді.
ТАБУ_МАКС бағдарламасында, мекенжай элементтері айнымалы де-
ректер М[1] М [4] дейін сәйкесінше d[0] - d[3]ге дейін сәйкес келеді.
245
Program main – негізгі бағдарлама; dimension – өлшем; integer – бүтін;
common – жалпы; data – мәлімет; max – максимум; do – орындау;
read – оқу; call find max – максимумды табу шақырылым; end – соңы;
assign – тапсыру; add – қосу; jump – секіру; halt – тоқтату; subroutine
find max – кіші жосарлы әдістерінің максимумын табу; if – егер;
return – қайтару; loop back – контурды қайтару; offset – офсеттік; call
– шақыру.
Сурет 5.6 Код аймағы және деректер аймағы үшін статикалық орындау
кейін компиляциясы
Бұл бағдарлама find_max және тезистерді екі негізгі бақылау режимдері
қоңырау шалу үшін төмен деңгейлі көшу көрсетеді: Цикл және шарт-
ты есептілігін (цикл үшін бір түрі) «болып табылады». Transfer Цикл
негізгі бағдарлама [0] ұялы ауданы коды басталады және [5] аяқталады
жылы «болып табылады». A [0] жад ұяшық 1 D мәні орнатады бекіту [5],
айнымалы I. Қабылдау болып табылатын [1] мәні D салыстырады [5] UI
+ 4 үшін [2] филиалдарының тұрақты 4. Бала асырап алу бар, құны, егер
D [5] асатын 4. Ескерту циклының бақылау жою үшін «IM + 4» пайда-
ланады. Егер меңзер тапсырмасы ығысу қосу әдісі бағдарламасы ком-
пьютерде іске жүктеледі жад аудандардың төмен деңгейлі коды тәуелсіз
етеді. Ал [3] жад ұяшықты M [I] қатынау үшін ығыстыру әдісін қолда-
нады нұсқаулары: 0 S базалық мекен-жайы болып табылады [0] және D
[5] [4] мәні D арттырады бар айнымалы I. Нұсқаулар мәні сақтайды [5]
1 және оқыту [5] Артқа [1], топтамасының келесі итерация басталады,
246
онда бақылау қалыптастырады. беттегі нұсқауларды [6] және [7] қоңы-
рау find_max әдістерге байланысты. [6] жад «IM + 2» туралы нұсқаулары
- осы нүктесінде белгісіз жоғары деңгейлі кiшi бағдарламасы қоңырау
кейін келесі оқыту мекенжай find_max кіші мекенжайын кері белгісіз
болғандықтан, жаңа символы символы кестеде енгізіледі. қайтару жады
мекенжай меңзердің байланысу барысында символы кестеде іздеу жүр-
гізіледі. [7] деп аталатын кіші find_max бірінші орындалатын туралы
есепте ағымдағы тапсырмасы көшуді ығысу нұсқаулары бірге пайда-
ланады. Алайда, ығысу түптеу және сілтеме уақытта есептеледі дейін,
сондай-ақ белгісіз.
Құрастырғандар программа find_max төмен деңгейлі код-DO рамалы
[8] үшін [1] жады орындала алады, және Шартты сөйлемнің аудармасы,
ілмектер «, ал» кірістірілген, [6] дейін [4] ұяшықтарын алады. [1] бет-
те 2. нұсқауларын Мен индекстелген айнымалы баптандыру тең туралы
нұсқаулық [2] Мен индекстелген айнымалы 4. нұсқаулары артық болса,
[3] циклі-DO бақылау алады отырып 4. нұсқаулары жоғарғы лимиті бар
индекстелген айнымалы мәнін салыстырады М [I] кем немесе айнымалы
MAX құнына тең болса, [4], [7], айнымалы жоласты М айнымалы MAX
мәнімен [I] және табыстардың құнына салыстырады. Әйтпесе, S [6] M
[I] MAX айнымалы мәні орнатады. 6 [8] 1. Ескерту [7] мәні D арттырады
үшін нұсқаулары [6] (жергілікті айнымалы I) [2] тапсырмасы, және топ-
тамасының келесі итерация өту үшін IP нұсқаулық меңзерді алынады.
[9] жад ұяшық кері мекен-жайы сақталады мекенжайын таңдайды, және
шақырушының тәртіппен келесі тапсырмасына бақылауды қайтарады.
Соңғы мәлімдемеде күнделікті аймақ кодын түкпір-түкпірінен бірнеше
рет деп атауға болады болғандықтан, одан кейін жад ұяшығының ме-
кен-жайы спам-сақталатын қайтару әрбір уақыт әр түрлі болады.
5.7 суретте көрсетілгендей, ортақ айнымалыларға міндетті кейін М М
[1] бұғаттау [4] және айнымалы MAX [4] D үшін [0] аралас және жад
ұялы D орналастырылған. Естеліктер мекенжайын және мен find_max
тәртіппен деректер саласындағы негізгі бағдарлама үшін таңдалған
соңғы жадындағы кейін орналастырылады жергілікті айнымалыны қай-
тарады. кері мекенжай [7] D пайда болады және Isub [8] D көрсетіледі
жергілікті айнымалы. find_max тәртібін бөлісу жоқ естеліктер (негізгі
бағдарламаның іске қосу жазу) өлшемі бойынша жылжыту болып табы-
лады - мөлшері (кіші бағдарлама find_max жалпы блок) 7 = - Бұл ығысу
= 2. 5 кіші компилируемый код жад ұяшықтарының қосылады.
247
max – максимум; read – оқу; assign – тапсыру; add – қосу; jump – секіру;
halt – тоқтату; return – қайтару; loop back – контурды қайтару; call –
шақыру; save RP – RP-ны сақтау; exit loop – контурдан шығу; return
using RP – қолданған RP-ны қайтару; linked code area – қосылған код
орыны; linked data area – қосылған мәліметтер орыны; the common
area has been merged and subroutine’s remaining activation-record has been
shifted resulting into update of the code area – жалпы орын біріктіріл-
ді және кіші әдетті белсендіру рекорды жылжып кетті, нәтижесінде
код орыны жаңартылды.
Сурет 5.7 Коды және деректер облыстардың байланыстыру бағыттары.
Байланысу барысында NAYTI_MAKS байланған кодты жасау.Symbol
C [6] 7 ауыстырылады - қайтару жады мекен-жайы меңзердің
- және символы бірінші санатшасы бағдарламасы нұсқауларға
жылжыту үшін 2 офсеттік мәні ауыстырылады.
5.4 Гибридті үлестіру
Блок құрылымына тілдер, суретте 5.8 көрсетілгендей, басқару дестесін,
үйіндісін және статикалық бөлу тұратын гибридті бөлу, пайдалану, ре-
курсивті тәртібін немесе динамикалық объектілерді қолдайды. инте-
грацияланған моделін деректер ауданы нысаны (статикалық облысы,
248
стек басқару, үйілген) бір триплетті болып табылады. Статикалық жады
бөлу компиляция кезінде бекітіледі және статикалық айнымалылар
және жаһандық айнымалы үшін пайдаланылады. Стек бағдарламасы
барысымен қарқынды басқару мен өзгерістер көп. Түрлі бір және сол
бағдарламаны қоңырау үшін бастапқы деректерді байланысты әр түрлі
өлшемдері мен үйме басқару дестесін талап етуі мүмкін, өйткені стек
және үйінді басқару қарама-қарсы бағытта өседі. Бақылау стек мөлшері
бірнеше рет үлкен, онда үйменің кеңейту үшін қосымша жад қажет
болады. Үйме жинақ биіктігі сақтай отырып және бір-біріне қарай екі
ұшын бақылау кезінде, бақылау стек және үйме ұшы пайдалану тұрғы-
сынан анықталады, және жад аймағы барынша пайдаланылады.
Үймеге орналастырылған объектінің бірінші сілтегіші, кадрдың неме-
се тіркелу тәртіппен қалады. Үйме бөлу келесі тарауда егжей-тегжейлі
талқыланды. Алайда бұл тарайда үйінді өту параметрлерін талқылау
үшін нысандар үйіндіде бөлінген кезде аталған болатын. Бағдарламада
аталатын әр кадр көп мағұлматты қамтиды: (1) кірітен нақты параметр-
лер үшін жад ұяшығы, (2) шақырылғвһан бағдарлама үшін сақталған
жағдай, (3) (қоңырау шалушының жақтаудың және емес жергілікті ай-
нымалылар қоса алғанда) бақылау стек кіру үшін және есептеу кіші
жай-күйін қалпына келтіру үшін әр түрлі көрсеткіштер деп аталады, (4)
жергілікті айнымалы жад, (5) дөрекі есептеу үшін жады, және (6) жад
шығыс нақты параметрлері.
Static allocations for static and global variables - статикалық және жаһан-
дық айнымалыларға статикалық бөлу; heap – үйінді; control stack
- бақылау стек; called – шақырылды; caller – шақырушы; outgoing
249
actual parameters - шығыс нақты параметрлері; temporary computations
- уақытша есептеулер; local variables – жергілікті айнымалылар;
saved state + return pointer, dynamic link, and static link – сақталған түрі +
көрсеткіш, динамикалық байланыс және статикалық байланытар-
дын оралуы; incoming formal parameters - Кіріс ресми параметрлері;
FP- FP; Stack growth – стек өсуі.
5.8 сурет. Блок-құрылымдалған тіл үшін Аудан деректер. (A) жалпы де-
ректер аймағы (B) жақтау.
Бағдарлама шақырылған кезде, шақырылған бағдарлама өзгерген кезде
есептудің кейбір режимі сақталады. Сақталған есептеу режимі шақы-
рушының ескі өзгерту тізілімдері (1)шақырылған бағдарламадағы реги-
стрлердің мәні мәндерін, (2) PSW, (3) өріс кодын және кіші бағдарлама
қоңырау деректер аймағын кіру үшін пайдаланылады түрлі көрсет-
кіштер. Әртүрлі индекстері қол жеткізу үшін құрылған: (1) бағдарлама
коды және деректер аумағы негізгі мекен-жайы нақты параметрлерін (2)
шақыруы бойынша сілтеме жады ұяшықтарына нақты параметрлердің
базалық мекен шеңберінде шақырылатын бағдарлама, егер параметрлері
бойынша беріледі (3) кадрлар рәсімдерді кезінде енгізілуде ағымдағы
рәсімі. Әрбір локальдық айнымалы ұяшық бөлінеді. Айнымалы дерек-
тердің түрлі көлемдегі нысандарымен байланысты болуы мүмкін. Мы-
салы символы ғана бір байттан алады, және бүтін 32 биттік компьютер-
де 4 байт. Жоғарғы бөлігінде кадр кейбір бар жад ұяшық, олар сақтау
үшін пайдаланылады және ішінара нәтижелерін есептеу кезінде есептеу
өрнектерді, және, ақырында, оның құрамында нақты параметрлері, олар
шақырылатын бағдарламаға берілуі тиіс
Нақты параметр өрнек есептейді, және нәтижесінде құны уақытша жа-
дында шығыс параметрлері ауданында жаңа ұяшықты сақталады. Жа-
былмайтын облысы бар динамикалық айнымалылар жергілікті жады
неғұрлым тиімді пайдалану үшін бірдей жад ұяшықтарының салысты-
рылатын болуы мүмкін. Жоспарлы аяқталғаннан кейін, жақтау кіші
алынып тасталады, жиынтығы көрсеткіштер шақырушының бағдарла-
маға кіру үшін, сондай-ақ стек меңзер жоғарғы бірден шақырушының
бағдарламасының блогында кейін жад орынға көрсету үшін қалпына
келтіріледі. Осылайша, шақыратын бағдарлама арқылы қолданылады
барлық жад болашақта қайта пайдалану үшін босатылады.
5.4.1 Әр түрлі нұсқаулар рөлі
Өңдеу үшін қажетті негізгі бес көрсеткіштер бар. Бағдарлама шақыру
250
кадрға шақыру шалушы және қатынас сілтемелерді есептеу күйін сақта-
удан кейін, басқару шақыратын бағдарламаның бірінші мәлімдемесіне
өтеді. Стек арқылы бөлу бағдарлама орындау барысында бес көрсет-
кіштер талап етеді: кадлық меңзер, қылмыстық кодекс деп аталады
және қол жеткізу мүмкіндік береді: (1) қазіргі бағдарламалауда уақытта
жұмыс жасап тұрған деректер аумағы, (2) орналасу кіріс параметрлері,
(3) Шақырушы бағдарлама туралы сақталатын ақпаратты. Блок меңзер
сақталған мемлекет кейінгі алғашқы жады орнын көрсетеді; және жад
қол жеткізу барлық басқа ұяшықтарға жақтау меңзер сақталған офсет-
тік базасы мекенжайын қосу арқылы жүзеге асырылады. Көрсеткіш
шыңы стек, КШС ретінде белгіленеді , және келесі бос ұяшыққа жад
дестесін басқаруды көрсетеді. Динамикалық байланыстырушы: ДБ мен
жад үшін шақырушының жақтау меңзерді аталатын және абоненттің
жақтау меңзерді қалпына келтіру үшін пайдаланылады. Индекс қайта-
ру, бағдарламаны шақыратын мәлімдемесінен кейін ИҚ мен жад үшін
шақырушының бағдарламасының кезекті тапсырмасы мекенжайын
көрсетеді . Статикалық сілтеме, СС деп аталатын, және қазіргі уақытта
бағдарлама инвестицияланатын бағдарламаның кадрына бағдарламаны
қатынау үшін мекенжайын сақтайды. Бұл жергілікті айнымалылар қол
жеткізу үшін қолданылады. ИҚ және КШС сияқты көптеген көрсет-
кіштер неғұрлым жылдам қатынасқа қол жеткізу үшін тіркелімдерінде
сақталады.
5.4.2 Шақырылатын бағдарламалар
Шақыру кезінде көрсеткіштегі өзгерістер келесі тәртәппен болады:
1. Шығыс ауқымы трансмиссиялық параметр түрі мен параметрлерін
санына негізделіп орнатылады. Осы уақытта, КШС нақты параметр-
лерін мәндерін итеру арқасында жаңартуларды алуын жалғастырады.
2. Шақырылған бағдарламадағы келесі нұсқаулықтағы жад ұяшығы
шақырылған қайтару бағдарламасының сілтеулігінде сақталады.
3. Динамикалық байланыс шақырылған бағдарламаның меңзеркадрына
тең болып орынатылады.
4. Статикалық байланыс енгізілген бағдарламаның кадрға көрсететін-
дей етіп орнатылады.
5. Шақырылған бағдарламаның кадрын көрсету үшін көрсеткіш стек
шыңының қазіргі мәні кадрлік көрсеткішке көшіріледі.
6. Нұсқаулық меңзер деп аталатын бағдарламаның бірінші тапсырмасын
еске орналасқан жері бойынша орнатылады.
7. Стектегі жергілікті динамикалық айналмалыларын бөлу үшін шақы-
рылған бағдарламаның КШС жергілікті ортаның мөлшеріне артады.
251
Осы көрсеткіштер орнатылған рет маңызды болып саналады. Мысалы,
егер біз КК-ні КК-нің ескі мәнін динамикалық сілтеме көшіруді алдын-
да өзгертсек, онда шаұырылған бағдарламаның кадрына өол жеткізу
көзі жойылады. Сол сияқты егер бірінші КШС орнатсаңыз, сіз жаңа КК
орнату мүмкін емес.
Көрсеткіштер орнатылған тәртіп жүзеге асыруға байланысты. Бұл жер-
де біз КК ығысуы 3, динамикалық сілтеме ығысуы - 2, және статикалық
сілтеме ығысуы (бар болса)- 1 деп болжаймыз. Егер статикалық сілтеме
болмаған жағдайда тіл енгізілген рәсімдерді қолдамайды, өйткені онда
КК 2 және ДБ ығысуы 1 болады. Осылайша, қол жеткізу көрсеткішке
қайтару арқылы жүргізіледі d[КК-3] (немесе D[КК-2], егер SL болмаған
жағдайда). Біз сондай-ақ КК және КШС тиімді еске сақтау үшін бағдар-
ламаның тізілімінде сақталады деп санаймыз.
C бағдарламасын шақыру
5.9 Сурет Шақыру рәсімі кезінде кадрдың қозғалысы.
Мысал 5.2
Сценарий қарайық. Негізгі бағдарлама А программасын шақыралы.
А программасы В программасын шақырады. B программа жұмысты
орындайды және аяқтайды. Содан кейін, негізгі бағдарлама С бағдар-
252
ламасын шақырады. 5.9a суретте стектің бақаруы В бағдарламасында
болғандағы бақылау бумасының суретін көрсетеді атайды. 5.9b сурет
бақылау программасы В болғандагы стек басқаруын көрсетеді. 5.9с су-
ретт B аяқталған кезде, бақылау элементі негізіг программаға қайтқан
кездегі стек басқарун көрсетеді. 5.9 d -суретте С бағдарлама негізгі
бағдарламамен шақырылатын кездегі стек басқару көрсетілді. В про-
граммасымен қолданылған жадтың кері қолданылып жатқанына назар
аударыңыз.
...5.4.3 Деректер аймағын және кодты жасау
Сақтау кіші бағдарлама қамтиды: (1) жаһандық айнымалыны құрылған
жад, (2) жергілікті емес айнымаламен құрылған жад, (3) аөпаратты жібе-
ру жолымен құрылған жад , (4) жергілікті айнымалармен құрылан жад.
Ғаламдық айнымалылар және статикалық айнымалылар статикалық де-
ректер саласындағы басында бөлінді және жад қол кез келген меңзерді
пайдаланбай жүзеге асырылады. Жергілікті айнымалы қатынау бар
бақылау дестесін жақтау сілтегіш жылжуын қосу арқылы жүзеге асы-
рылады. Мысалы, D [КК + 3] Корпус көздегішінде көзделген мекенжай
бойынша үш жасушаларында болып жады ұяшыққа, қол жеткізуге мүм-
кіндік береді.
Статикалық сілтеме (CC) сыртқы келесі деңгейлі кіші мекен-жайы, және
жергілікті емес айнымалы базалық жақтау салынған тәртіппен жоғары-
да N (N≥ 1) деңгейі ретінде мәлімделген болып сақтайды. Статикалық
сілтемелер (1) тізбегі, және тізілімдер (2) тіркеуді көрсету: жергілікті
емес айнымалыларға қатынау үшін екі әдістері қолданылды.
Статикалық сілтемелердің тізбегін қозғаушы статикалық сілтеме ығы-
суы белгілеген, бұл жағдайда орналасқан жады ұяшығында, сақталады
деп болжайды. Бұл әдіс шеңберінде сақталған статикалық қосылым
деректерін пайдалана отырып, дәйекті өтулер пайдаланады. Айныма-
лы емес, жергілікті «М» деп жарияланған басқа деңгейге кірістірілген
болса, деректерге қол жетімділікті төменгі деңгейі D (м, ығысу) ретінде
жазуға болады, және төмендегідей айнымалы қол жеткізу үшін емес,
жергілікті алгоритм болып табылады:
while (m > 0) {
...
m = m - 1; frame-base = d[SL];
...
SL = frame-base − 1;}
...
value = d[frame-base + offset]
253
Статикалық сілтемелер мақсаты қарапайым әдіс болып табылады және
енгізу деңгейі тым жоғары болса үстеме жад-қа бірнеше қатысудан зар-
дап шегеді. . Екінші әдіс дисплей тізілімдері пайдаланады. Дисплей
тізілімдер процессор немесе тікелей адресті емес жергілікті айнымалы-
лар бар кэш тізілімдері болып табылады. Дисплей тіркелу деп атала-
тын рәсімін іске толтырылған, және емес жергілікті айнымалы қатынау
тиімді сілтегіш тізбегін өткеннен жүзеге асырылады.
Параметрлері сілтеме бойынша өтіп кезде қоңырау шалушының аясын-
да айнымалылар деп аталады. Шақыруда сілтеме бойынша формальды
параметр болып табылады көрсеткішімен бірінші ұяшықты жад ақпа-
раттық объектіге сілтеме беріледі. Егер абстракция деректер болып та-
былады құрамдас ақпараттық объектісі болса, онда қол жеткізу әр түрлі
атрибуттар арқылы жүргізіледі қосу ығысу атрибута бірінші ұяшықты
жад ақпараттық объект болады. Сол сияқты, абстракция жеке деректер
мен элементтеріне D [сілтеме байланысты] ретінде есептеледі деректер
нысаны жад ұяшық i мөлшерін көбейту арқылы индексін ақпараттық
объектілердің жинағы, ығысу есептелінеді + і өлшемін (жеке-тармағы
деректерді) және мәнді * егер D ретінде қол жетімді жад [D [сілтеме
байланыс] + і өлшемін (жеке элементі деректер) *].
Шақырушы күнделікті тек жақтау меңзерді ығысуды пайдаланып,
жергілікті шеңберінде жад ұяшықты қатынасады. Бағдарлама іске қо-
сылғанда бағдарлама арқылы шақырылған кадр итерілсе онда кадрдегі
қолданылып отырған жад программа аяқталғаннан кейін қайта пайда-
лануға шақырылады. Бағдарлама қоңырау үшін нұсқаулар тізбегі төмен-
дегідей болады:
1. Нақты параметрлері өрнекті бағалау және шығу параметрлері мән-
дерін көшіріңіз.
2. Шақыратын кадрға режимін сақтау үшін PSW және қоңырау шалушы-
ның тіркелімдер сақтаңыз. Программаны сақтау кезінде өзгертуге ғана
тізілімдері сақталған.
3. Бағдарламаны басқарудан оралғаннан кейін шақырушының бағдарла-
масының келесі нұсқау көрсету үшін қайтару меңзерді жаңартыңыз.
4. Бағдаламамен шақырылған динамикалық сілтемеге кодекске көрсет-
кішін көшіріңіз.
5. Егер жергілікті емес айнымалылар тілмен байланысса, статикалық
сілтемені жаңартыңыз.
6. Жаңа кодекс көрсеткіші мәні ретіндеКШС көшіру арқылы жақтау
меңзерді жаңартыңыз.
7. Көрсеткіші қайтару үшін ол нұсқаған болатын нұсқаулығы, келесі
254
шақырылатын бағдарлама үшін жаңарту
8. Шақырылатын бағдарламада бірінші нұсқаулыққа көшу.
9. Коды бойынша бағдарлама, бірінші нұсқаулық сілтегіш-шыңдары де-
стесін (КШС) бағдарламасының кадр өлшемін қосу арқылы кіші бағдар-
лама шақыратын жергілікті қоршаған ортаны бөледі.
Программаны бастап қайтару ортаны қалпына келтіру үшін мынадай
операцияларды орындайды және сақтау суб-бағдарламаларды тудыра-
ды:
1. Сақталған регистрлер және PSW қоңырау есептеу кіші дәрежесін қал-
пына келтіру үшін, қайтып тиісті тізілімдер көшіріледі.
2. Бағдарлама шақыру КШС шақыратын программа пайдаланатын
жадты қалпына келтіру үшін қалпына келтірілді. Шегеру жолымен
мөлшерін кіріс параметрлерінің сақталған жай-күйі және әр түрлі көр-
сеткіштердің бірі көрсеткіштің кадр шақырылатын программа КСШ
шақырылатын кіші қалпына келтіріледі.
3. Шақырылған программаның кадрын қалпына келдіру үшін ДБ дина-
мическая құрастыру ҚК көшіріледі.
4. КҚ қайтару индексі шақырушының бағдарламасының бақылауды жі-
беру үшін КИ көшіріледі.
Бағдарлама оралғаннан кейін, сондай-ақ мынадай нұсқауларды өткізбей
тұрып, ресми параметрлерін нәтижелері ұяшығы нақты параметрлерін
жадында жады ұяшықтары шығу параметрлерін көшіріледі. Қалған
біздің талқылауға біз бағдарламаны жүзеге асыруға қажетті ақпарат-
тың ешқайсысын жоғалтпас үшін PSW мен тіркелімдерінің сақталуын
қамтымаймыз.
Мысал 5.3
5.10 сурет блок-құрылымдалған бағдарламасын пайдалана отырып
тұжырымдаманы суреттейді. Меңзер нұсқаулар (MН), кадрдың көрсет-
кіші (КК) және стек сілтегіш (СС), тиімді қол жеткізуін қамтамасыз ету
үшін процессордың тізілімдері сақталады. Бағдарлама арнайы түрлі аб-
стракция басқару, деректер жинау және статикалық бөлу көрсету үшін
әзірленген болатын. Негізгі бағдарлама деректердің төрт элементтерді
делінген [4] және Табу_maks бағдарламасы шақырады. Суретті бақылау
ішіндегі nayti_maks программасы болып табылатын сценарий көрсетеді.
Вrgt (неғұрлым-кем филиалы), секіру (шартсыз филиалы), brle (аз-
сәл-тең филиалы), және CMP (салыстыру) нұсқаулары интуитивті бо-
лып табылады. Нұсқаулары жаңарту бірінші дәлел қосу үшін, екінші
дәлел сақталған мәнді қосады. Мысалы, нұсқау «қосу (КСШ 1)» «КСШ
255
= КСШ+ 1.» баламасы болып табылады. Көптеген абстактілі нұсқау-
лықтар нұсқаулықты жинақталу деңгейіне көшірген уақытта нұсқау-
лықтың жал,асымен теңестіріледі. Мысалы, «қосу (d[КК], КИ + 2)»
нұсқаулығы "қосу (КИ , 2, R1), присвоить(d[КК], R1)." Мен тең келеді.
Сол сияқты, оқу операторы оқу үшін операциялық жүйесін іске қоса-
ды. «Итеру» нұсқаулығы стек басқаруындағы аргументке кедергі жасап,
КШС-ні бірінен соң бірін арттырады.
256
Program main – негізгі бағдарлама; integer – бүтін; data area– мәлімет
Достарыңызбен бөлісу: |