Sklop ni nič drugega kot linearna struktura podatkov, kjer vstavljanje in brisanje poteka samo na enem koncu. Operacija vstavljanja ima posebno ime, imenovano PUSH, operacija brisanja pa ima tudi posebno ime, imenovano POP. PUSH in POP sta dve temeljni operaciji, ki ju je mogoče izvesti samo v določenem kupu. Gre za skupino pomnilniških lokacij, ki so povezane z bralnim pomnilnikom ali pomnilnikom za zapisovanje. To se uporablja za shranjevanje binarnih informacij med izvajanjem programa, ko izvajamo kateri koli program, se bo vsebina tega programa shranila v sklad. Sledi Last In First Out (LIFO) in se uporablja samo za shranjevanje in pridobivanje podatkov, ne pa tudi za shranjevanje podatkov. Kratka razlaga kazalca sklada / sklada je opisana spodaj.
Kaj je kazalec sklada / sklada?
Opredelitev: Sklop je naprava za shranjevanje, ki se uporablja za shranjevanje informacij ali podatkov na način LIFO (Last In First Out). Kadar podatke vnesemo v obliki LIFO, je element, ki ga je treba najprej izbrisati, zadnji element vstavljanja, zato se zadnji vstavljeni element najprej vzame ven. To je pomnilniška enota znotraj naslovnega registra, ki se imenuje stack pointer (SP). Kazalec sklada vedno označuje zgornji element sklada, kar pomeni, na katero mesto je treba vstaviti podatke.
Vrste skladov
Obstajata dve vrsti skladov, ki sta registarski sklad in sklad pomnilnika.
Registriraj sklad
Spis registra je tudi pomnilniška naprava, ki je v pomnilniški enoti, vendar obdeluje le majhno količino podatkov. Globina sklada je v svežnju registrov vedno omejena, ker je velikost skladov registra zelo majhna v primerjavi s pomnilnikom.
Potisnite operacijo v registrskem skladu
Korak 1: Kazalec sklada se poveča za 1.
SP ← SP + 1
2. korak: Vnesite podatke v sklad.
1000 [SP] ← CT
Kjer je DR podatkovni register
3. korak: Preverite, ali je kup poln ali ne
če (sp = 0), potem (polno ← 1)
4. korak: Oznaka ni prazna
prazno ← 0
Pop operacija v registrskem skladu
Korak 1: Preberite podatke iz sklada.
DR ← M [SP]
2. korak: Zmanjšanje točke sklada.
SP ← SP-1
3. korak: Preverite, ali je sklad prazen ali ne
če je sp = 0, potem prazno ← 1
Organizacija skladov 64-bitnega skladovnega registra je prikazana na spodnji sliki.

Registracija organizacije skladov
Pomnilniški sklad
V pomnilniškem skladu je globina sklada prilagodljiva. Zaseda veliko količino pomnilniških podatkov, medtem ko bo v svežnju registra shranjeno le končno število pomnilniških besed.
Potisnite postopek v pomnilniškem skladu
Korak 1: SP ← SP-1
2. korak: 1000 [SP] ← CT
Pop operacija v Memory Stacku
Korak 1: DR ← M [SP]
2. korak: SP ← SP-1
V primerjavi z registrsko enoto pomnilniška enota shrani veliko količino podatkov. Slika pomnilniškega sklopa je prikazana na spodnji sliki.

Pomnilniški sklad
Skupna pomnilniška enota je razdeljena na tri dele, prva pomnilniška enota ima program (nič drugega kot navodila), drugi del so podatki (operandi), tretji del pa sklad. Navodila za program se vedno shranijo v števec programov (PC), podatkovni registri pa se identificirajo z naslovnim registrom (AR). Naslov 3000 do 4001, uporabljen za sklad in prvi element ali element, je shranjen na 4001.
Kazalec sklada / sklada v mikroprocesorju 8085
Pogled programerja iz leta 8085 mikroprocesor vsebuje registre za splošno uporabo in registri za posebne namene . Registri za splošno uporabo so A, B, C, D, E, H, L, registri za posebne namene pa so SP (kazalec skladb) in PC (števec programov). Pogled programerja mikroprocesorja 8085 je prikazan na spodnji sliki.

Pogled programerja 8085
Kazalec skladovnice je 16-bitni register, ki vsebuje pomnilniški naslov, domnevamo, da je vsebina kazalca sklada (SP) FC78H, nato pa ga mikroprocesor 8085 interpretira. Na lokacijah pomnilnika so uporabne informacije od FC78H do FFFH, od FC77H do 0000H pa na uporabniških lokacijah. Razlaga kazalca sklada je prikazana na spodnji sliki.

Interpretacija kazalca sklada
Osnovne operacije kazalca sklada / sklada
Obstajata dve operaciji sklada: PUSH in POP.
Delovanje PUSH
PUSH pomeni potiskanje ali vstavljanje elementa v sklad. Operacija PUSH vedno poveča kazalec sklada, operacija POP pa vedno zmanjša kazalec sklada. V primeru potisne operacije moramo preveriti, ali je na voljo prosti prostor ali ne. Če je na voljo prosti prostor, lahko preidemo na potisno operacijo, če prosti prostor ni na voljo, se pojavi sporočilo o napaki, ki je preplavljeno. Preliv je treba preveriti v primeru pritiska. Osnovna operacija potiskanja in pritiska je prikazana na spodnji sliki.

Osnovno delovanje PUSH in POP
Slika (a) je sklad. Če želite element, ki vstavlja element, potisniti v sklad, morate potisniti (s, a), kjer 's' ni nič drugega kot sklad. V sklad postavimo element „a“ in ta postopek je prikazan na sliki (b). Glejte sliko (3), domnevamo, da sklad vsebuje tri elemente a, b, c in da je sklad napolnjen z elementom.
Če želite vstaviti četrti element -d s pomočjo push (s, d), vendar ni prostora za vstavitev elementa, to pomeni, da je sklad preliven. Terminologija prelivanja se uporablja, ko je sklad poln in je algoritem potisne operacije prikazan spodaj.
potisni (stack [], top, max stack, item)
če (zgoraj == maxstack-1)
{
natisni “overflow”
}
drugače
{
zgoraj = zgoraj + 1
kup [vrh] = element
}
konec
Operacija POP
POP pomeni brisanje elementa na vrhu sklada. Pri pop operaciji moramo preveriti, ali je sklad na začetku prazen ali ne. Če je sklad na začetku prazen, potem pride do podtoka. Recimo, da je sklad prazen, še vedno želite, da se elementi v njem pojavijo, vendar v njem ni elementov, kar vodi do podtoka sklada.
Preverjanje je treba preveriti v primeru popuščanja. Pri operaciji pop, ne glede na to, kateri zgornji element je prisoten v skladu, ga je treba pojaviti ali izbrisati, zato ni treba omenjati, kateri element bo prikazan, privzeto bo prikazan najvišji element. Algoritem pop operacije je prikazan spodaj.
pop (stack [], top, item)
če (zgoraj == - 1)
{
natisni 'underflow'
}
drugače
{
item = sklad [zgoraj]
top = top-1
}
Primer
Elementi so vstavljeni v vrstnem redu kot A, B, C, D, E, predstavlja niz petih elementov. Na sliki (a) želimo na sklad potisniti element 'A', nato vrh postane nič (zgoraj = 0), podobno vrh = 1, ko se potisne element 'B', vrh = 2, ko element 'C' je potisnjeno, top = 3, ko je potisnjen element 'D', in top = 4, ko je potisnjen element 'E'.
Torej, kateri koli elementi, ki sem jih vzel, so postavljeni v sklad, zdaj je sklad poln. Če želite potisniti drug element, v kupu ni prostora, zato to pomeni preliv. Zdaj je sklad poln, če želite pojaviti element, je treba najprej izbrisati element 'E'. Potisni postopek je prikazan na spodnji sliki.

Potisna operacija
Za brisanje elementov v kupu moramo uporabiti operacijo pop. Torej samo omenite pop (), ne pišite argumentov v pop, ker privzeto izbriše zgornji element. Prvi element „E“ se črta, naslednji element „D“ ... .. „A“. Ko se zgornji elementi izbrišejo, se zgornja vrednost zmanjša. Ko je vrh = -1, sklad kaže na podtok. Postopek pojavljanja je prikazan na spodnji sliki.

Operacija POP
To je torej razlaga, kako se elementi vstavijo in izbrišejo v sklad z uporabo pritiska in izpiranja.
Aplikacije
Aplikacije kazalca sklada / sklada so
- Spremenitev niza
- Uravnotežena oklepaj
- RAZVESTI / PRST
- Sistemski sklad za aktivacijske zapise
- Infix, predpona, postfix, izraz
Pogosta vprašanja
1). Kaj je kazalnik sklada v roki?
Register kazalca sklada (R13), ki se uporablja kot kazalec na aktivni sklad v ARM.
2). Zakaj je kazalnik sklada 16-bitni?
Kazalec sklada (SP) in števec programov (PC), ki se uporabljata za shranjevanje prejšnje lokacije in naslova lokacije pomnilnika, sta 16 bitov, zato je kazalnik sklada (SP) tudi 16-biten.
3). Kakšna je vloga kazalca skladovnice?
Vloga kazalca sklada (SP) je označevati vrh elementa v skladu.
4). Kateri sklad se uporablja v 8085?
Sklop, uporabljen leta 8085, je Last In First Out (LIFO).
5). Je kazalec sklada register?
Da, kazalec sklada (SP) je adresni register, ki vedno označuje vrh elementa v kupčku.