Микропроцессорлық жүйелерді құруда қолданылатын микропроцессорлық құралдардың біркристалды және модульдік жиынтықтарын, Үис және Үисс микропроцессорлық жиынтықтарының функционалданған және салыстырмалы сипаттамаларының принциптерін



бет4/8
Дата11.03.2023
өлшемі123,5 Kb.
#73383
1   2   3   4   5   6   7   8
Байланысты:
Ельчибаев

2.4 Стекпен жұмыс командалары

. Стекпен жұмыс командалары


Стек жады (стек) қазіргі заманғы компьютерлердің тиімді элементі болып табылады, операнд мекен-жайының жасырын тапсырмасын орындайды. Стекке жүгіну мекен-жайы командада болмаса да, ол арнайы ереже бойынша автоматты түрде басқару схемасымен құрылады.

Біз MP стегі ішкі бағдарламаларды шақыру пәрмендерін орындау кезінде немесе үзілістерді өңдеу кезінде қолданылатынын білеміз. Бұл жағдайда стекпен операциялар автоматты түрде орындалады, яғни оларды бағдарламашы нақты көрсетпейді. Енді біз ішкі бағдарламаларды орындауға және үзілістерді өңдеуге қатысы жоқ стекпен операцияларды орындауға арналған командалармен танысамыз. Стекті қолданған кезде өте мұқият болу керек. Деректерді стекке жүктеу және оны стектен шығару нақты бақылануы керек. Егер сіз деректерді стекке жүктесеңіз және оны басқа MP командасын іске асырар алдында алып тастамасаңыз, оның орындалуы стекке қатысты кейбір әрекеттермен байланысты болса, онда бағдарламаның жұмыс істеуі үшін апатты салдарлар болуы мүмкін.


Стек - Бұл LIFO-last in, first out принципі бойынша әрекет ететін жад құрылғысы екенін есте ұстаған жөн (соңғысы бірінші болып қызмет етеді). Бұл дегеніміз, стекке соңғы жүктелген деректер алдымен стектен алынады. Деректерді стектен шығару стекке жүктеудің кері ретімен жүреді.


Екі ішкі бағдарламаға үндеу бағдарламаланады делік, олардың біреуі екіншісін шақырады. Біз шақырылған ішкі бағдарламаны Екінші деңгейдегі ішкі бағдарлама деп атаймыз. Суретте Екінші деңгейдегі ішкі бағдарламаны орындау кезінде стек мазмұны көрсетілген. Үлкен мекен-жайы бар Байт стек 0f25 мекен-жайы бар жад аймағын алады. Бастапқы стек аймағы ретінде Бағдарламаның басқа бөліктерінде қолдануға болмайтын ерікті жад аймағы таңдалды. 0f25 және 0F24 мекенжайлары бар облыстардың мазмұны негізгі бағдарлама облысының мекенжайына тең. Бұл мекен-жай-бұл негізгі бағдарламада кіші шақыру командасынан кейінгі команданың мекен-жайы. 0f25 және 0F24 мекенжайлары бар жад аймақтары сәйкесінше МБ және СБ командалық есептегішті қамтиды. Ішкі бағдарлама аяқталғаннан кейін негізгі бағдарламаның жұмысы жад аймағында орналасқан 000с мекен-жайы бар командадан басталады. стектен деректерді іріктеу кезінде алдымен командалық есептегіштің аға, содан кейін Кіші байты алынады.


Мекен-жайы
облыстар
жад
Бағдарлама
Стек
0F21
Келесі қол жетімді стек элементі
0F22
Бірінші кіші бағдарлама үшін аға байт СК
02
0F23
Бірінші кіші бағдарлама үшін ЖБ СК
01
0F24
Негізгі кіші бағдарлама үшін СБ СК
00
0F25
Негізгі кіші бағдарлама үшін ЖБ СК

Сондай-ақ, суретте бірінші деңгейдегі кіші бағдарламадағы екінші деңгейлі шақыру командасынан кейін 0201 мекен-жайы бар команда бар екендігі көрсетілген.


Қарастырылып отырған мысалда екінші деңгейлі ішкі бағдарлама сандарды екі дәлдікпен көбейтуді қамтамасыз етеді делік. Бұл ішкі бағдарламаны орындау кезінде 3 байт өрісінің мазмұнын солға жылжыту пәрменін орындау кезінде пайдаланылатын уақытша жад аймағын бөлу қажет. Суретте стекке 3 байт жадты алатын әр байттың орналасуы көрсетілген. А) суретте стектің кіші байтты оған жібергеннен кейінгі күйі көрсетілген. Стек көрсеткіші (- >суретте) стектің келесі бос аймағын анықтайды. Стектің күйі оған екінші байтты жүктегеннен кейін Б - суретте, ал соңғы (аға) байтты жүктегеннен кейін в-суретте көрсетілген.


Стек көрсеткішіндегі тікелей операндты жүктеу пәрмені стек бастапқы күйін орнату үшін пайдаланылады, бұл стек көрсеткішіндегі бастапқы стек аймағының мекенжайының жүктелуімен қамтамасыз етіледі. Тағы бір қолдануға болатын стек аймағының басқа стек аймақтарының мекен-жайларына қатысты мекен-жайы аз екенін есте сақтаңыз. Демек, стек көрсеткішіне тікелей операндты жүктеу пәрмені ең үлкен мекен-жайы бар стек аймағын орнату үшін пайдаланылады. Команданың 2-ші байты стек көрсеткішінің SB анықтайды. Стек көрсеткішінің МБ команданың 3-байтымен беріледі. Бұл пәрменді орындау кезінде күй регистрінде нөлдік нәтиженің 1-разрядына, егер 16-биттік жүктелетін сөздің мәні 0 болса, ал егер стек көрсеткішіне жүктелген сөздің аға разряды 1-ге тең болса, теріс нәтиже разряды орнатылады. Тікелей операнд стек көрсеткішіне жүктеу пәрмені стекпен жұмыс жасамас бұрын бір рет орындалады.

Стек ешқашан бастапқы күйіне орнатылмайды! Сондықтан, күн тәртібіне қоңырау шалмас бұрын немесе бағдарламадағы үзілісті өңдемес бұрын, бағдарламашы стек көрсеткішін орнату үшін пәрменді қолдануы керек






Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет