Шта је Стацк / Стацк Поинтер: типови и његове примене

Испробајте Наш Инструмент За Елиминисање Проблема





Склоп није ништа друго до линеарна структура података где се уметање и брисање одвија само на једном крају. Операција уметања има посебно име познато као ПУСХ, а операција брисања такође има посебно име познато као ПОП. ПУСХ и ПОП су две основне операције које се могу извести само у одређеном слогу. То је група меморијских локација и оне су повезане са меморијом за читање или меморијом за писање. Ово се користи за чување бинарних информација током извршавања програма, када извршавамо било који програм тада ће се садржај тог програма чувати у стеку. Следи Ласт Ин Фирст Оут (ЛИФО) и користи се само за складиштење и преузимање података, али се не користи за складиштење података. Кратко објашњење показивача стека / стека размотрено је у наставку.

Шта је Стацк / Стацк Поинтер?

Дефиниција: Склоп је уређај за складиштење, који се користи за складиштење информација или података на начин ЛИФО (Ласт Ин Фирст Оут). Кад год податке унесемо у облику ЛИФО, елемент који прво треба избрисати је последњи елемент за уметање, па се последњи уметнути елемент прво вади. То је меморијска јединица унутар адресног регистра која се назива стек показивач (СП). Показивач стека увек означава горњи елемент у стеку, што значи на којој локацији подаци морају бити уметнути.




Врсте стека

Постоје две врсте стогова, то су регистарски стек и меморијски стек.

Регистер Стацк

Спис регистра је такође меморијски уређај присутан у меморијској јединици, али обрађује само малу количину података. Дубина стека је увијек ограничена у стеку регистара, јер је величина стога регистра врло мала у поређењу са меморијом.



Пусх операција у стогу регистра

Корак 1: Показивач стека се увећава за 1.

СП ← СП + 1


Корак 2: Унесите податке у стек.

1000 [СП] ← ЦТ

Где је ДР регистар података

Корак 3: Проверите да ли је стог пун или не

иф (сп = 0) тхен (фулл ← 1)

Корак4: Означи као празно

празно ← 0

Поп операција у регистру

Корак 1: Читајте податке из стека.

ДР ← М [СП]

Корак 2: Децремент стацк поинт.

СП ← СП-1

Корак 3: Проверите да ли је стек празан или не

ако је сп = 0 онда је празно ← 1

Организација стека 64-битног стека регистра приказана је на доњој слици.

Региструјте организацију стека

Региструјте организацију стека

Мемори Стацк

У меморијској хрпи дубина стека је флексибилна. Заузима велику количину меморијских података, док ће се у регистрском стогу сачувати само коначан број меморијских речи.

Пусх операција у меморијској хрпи

Корак 1: СП ← СП-1

Корак 2: 1000 [СП] ← ЦТ

Поп операција у Мемори Стацк-у

Корак 1: ДР ← М [СП]

Корак 2: СП ← СП-1

У поређењу са јединицом регистра, меморијска јединица чува велику количину података. Слика меморијског слога приказана је на доњој слици.

Мемори Стацк

Мемори Стацк

Укупна меморијска јединица подељена је на три дела, прва меморијска јединица има програм (ништа осим упутстава), други део су подаци (операнди), а трећи део је стог. Програмска упутства се увек чувају у бројачу програма (ПЦ), а регистри података идентификују се адресним регистром (АР). Адреса 3000 до 4001 која се користи за стог и први предмет или елемент чува се на 4001.

Стацк / Стацк показивач у микропроцесору 8085

Поглед програмера 8085 микропроцесор садржи регистре опште намене и регистри посебне намене . Регистри опште намене су А, Б, Ц, Д, Е, Х, Л, а регистри посебне намене су СП (Стацк Поинтер) и ПЦ (Програм Цоунтер). Поглед програмера микропроцесора 8085 приказан је на доњој слици.

Поглед програмера 8085

Поглед програмера 8085

Показивач стека је 16-битни регистар који садржи меморијску адресу, претпоставимо да је садржај показивача стека (СП) ФЦ78Х, а затим га микропроцесор 8085 интерпретира. Меморијске локације имају корисне информације од ФЦ78Х до ФФФХ, а од ФЦ77Х до 0000Х меморијска локација нема корисне информације. Тумачење показивача стека приказано је на доњој слици.

Тумачење показивача стека

Тумачење показивача стека

Основне операције стека / показивача стека

Постоје две операције стека: ПУСХ операција и ПОП операција.

ПУСХ Оператион

ПУСХ значи гурање или уметање елемента у стек. Операција ПУСХ увек повећава показивач стека, а ПОП операција увек смањује показивач стека. У случају пусх операције морамо да проверимо да ли има слободног простора или не. Ако је слободан простор доступан, можемо прећи на пусх операцију, ако слободног простора нема, појављује се порука о грешци која је преплављена. Прелив треба проверити у случају притиска. Основна операција гурања и искакања приказана је на доњој слици.

Основне операције ПУСХ и ПОП

Основне операције ПУСХ и ПОП

Слика (а) је стог. Ако желите да гурнете елемент који убацује елемент у стек, морате да притиснете (с, а), где ‘с’ није ништа друго него стог. У стек постављамо елемент „а“ и ова операција је приказана на слици (б). Погледајте слику (3), претпоставимо да стек садржи три елемента а, б, ц, а стек је испуњен елементом.

Ако желите да уметнете четврти елемент -д помоћу додира (с, д), али нема простора за уметање елемента, то значи да је стек преливен. Терминологија преливања користи се када је стек пун, а алгоритам пусх операције је приказан у наставку.

пусх (слагање [], горњи, максималан стацк, ставка)

ако (врх == макстацк-1)

{

исписати „оверфлов“

}

иначе

{

врх = врх + 1

стацк [топ] = ставка

}

крај

ПОП операција

ПОП значи брисање елемента на врху стека. У случају поп операције, морамо да проверимо да ли је стек у почетку празан или не. Ако је стек у почетку празан, тада долази до ситуације подливања. Претпоставимо да је стек празан и даље желите да искочите елементе у стек, али у њему нема елемената, што доводи до подливања стека.

Подлив треба проверити у случају поп операције, односно. У поп операцији, без обзира на то који је горњи елемент присутан у стеку, треба га искочити или обрисати, тако да нема потребе да помињете који ће се елемент појавити, подразумевано ће се појавити највиши елемент. Алгоритам поп операције је приказан у наставку.

поп (слаг [], врх, ставка)

ако (врх == - 1)

{

исписати „ундерфлов“

}

иначе

{

итем = стацк [врх]

топ = топ-1

}

Пример

Елементи се убацују у редоследу као А, Б, Ц, Д, Е, представља стог од пет елемената. На слици (а) желимо да гурнемо елемент 'А' у стек, а затим врх постаје нула (врх = 0), слично врх = 1 када се гурне елемент 'Б', врх = 2 када се појави елемент 'Ц' се гура, врх = 3 када се притисне елемент „Д“, а врх = 4 када се притисне елемент „Е“.

Дакле, шта год да су елементи које сам узео стављени у стог, сада је стог пун. Ако желите да потиснете други елемент, у стеку нема места, па то указује на преливање. Сад је стог пун, ако желите да отворите елемент „Е“, елемент прво мора бити обрисан. Операција потискивања приказана је на доњој слици.

Пусх Оператион

Пусх Оператион

Морамо да користимо операцију поп за брисање елемената у стеку. Дакле, само спомените поп (), не пишите аргументе у поп јер подразумевано брише горњи елемент. Први елемент „Е“ брише се следећи елемент „Д“ ... .. „А“. Када се горњи елементи бришу, тада се горња вредност смањује. Када је врх = -1, стек указује на подлив. Скочна операција приказана је на доњој слици.

ПОП операција

ПОП операција

Дакле, ово је објашњење како се елементи убацују и бришу у стеку помоћу пусх и поп операција.

Апликације

Примене показивача стека / стека су

  • Преокрет низа
  • Уравнотежене заграде
  • ОТКАЖИ / ПРСТ
  • Системски стек за записе о активацији
  • Инфикс, префикс, постфикс, израз

ФАК

1). Шта је показивач стека у краку?

Регистар показивача стека (Р13) који се користи као показивач на активни стек у АРМ-у.

2). Зашто је показивач стека 16-битни?

Показивач стека (СП) и бројач програма (ПЦ) који се користе за чување претходне локације и адресе локације меморије су 16 бита, тако да је показивач стека (СП) такође од 16 бита.

3). Која је улога показивача стека?

Улога показивача стека (СП) је да укаже на врх елемента у стеку.

4). Који стек се користи у 8085?

Стек коришћен у 8085 је Ласт Ин Фирст Оут (ЛИФО).

5). Да ли је показивач стека регистар?

Да, показивач стека (СП) је адресни регистар који увек означава врх елемента у стеку.

У овом чланку шта је