Pino ei ole muuta kuin lineaarinen tietorakenne, jossa lisäys ja poisto tapahtuu vain toisesta päästä. Lisäysoperaatiolla on erityinen nimi, joka tunnetaan nimellä PUSH, ja poistotoiminnolla on myös erityinen nimi, joka tunnetaan nimellä POP. PUSH ja POP ovat kaksi perustoimintoa, jotka voidaan suorittaa vain tietyssä pinossa. Se on ryhmä muistipaikkoja ja muistipaikat liittyvät joko luku- tai kirjoitusmuistiin. Tätä käytetään binaaritietojen tallentamiseen ohjelman suorituksen aikana, kun suoritamme mitä tahansa ohjelmaa, kyseisen ohjelman sisältö tallennetaan pinoon. Se seuraa Viimeisenä sisään ensimmäisenä ulos (LIFO) ja sitä käytetään vain tietojen tallentamiseen ja noutamiseen, mutta ei tietojen tallentamiseen. Pino / pinon osoitin lyhyesti selitetään alla.
Mikä on pino / pinon osoitin?
Määritelmä: Pino on tallennuslaite, jota käytetään tietojen tai tietojen tallentamiseen tavalla, joka on LIFO (Last In First Out). Aina kun syötämme tiedot LIFO-muodossa, ensin poistettava elementti on viimeinen lisäyselementti, joten viimeinen lisätty elementti poistetaan ensin. Se on muistiryhmä osoiterekisterissä, jota kutsutaan pinon osoittimeksi (SP). Pinoosoitin osoittaa aina pinon ylimmän elementin, mikä tarkoittaa, mihin kohtaan tiedot on lisättävä.
Pinon tyypit
On olemassa kahden tyyppisiä pinoja, ne ovat rekisteripino ja muistipino.
Rekisteröi pino
Rekisteripino on myös muistilaitteessa oleva muistilaite, mutta se käsittelee vain pientä datamäärää. Pinon syvyys on aina rajoitettu rekisteripinossa, koska rekisteripinon koko on hyvin pieni muistiin verrattuna.
Työnnä toiminta rekisteripinossa
Vaihe 1: Pinoosoitin kasvaa yhdellä.
SP ← SP + 1
Vaihe 2: Syötä tiedot pinoon.
1000 [SP] ← CT
Missä DR on tietorekisteri
Vaihe 3: Tarkista, onko pino täynnä vai ei
jos (sp = 0) sitten (täysi ← 1)
Vaihe 4: Merkitse ei tyhjä
tyhjä ← 0
Pop-operaatio rekisteripinossa
Vaihe 1: Lue tiedot pinosta.
DR ← M [SP]
Vaihe 2: Vähennys pinopiste.
SP ← SP-1
Vaihe 3: Tarkista, onko pino tyhjä vai ei
jos sp = 0, tyhjä ← 1
64-bittisen rekisteripinon pinoorganisaatio on esitetty alla olevassa kuvassa.
Rekisteröi pinon organisaatio
Muistipino
Muistipinossa pinon syvyys on joustava. Se vie suuren määrän muistidataa, kun taas rekisteripinoon tallennetaan vain rajallinen määrä muistisanoja.
Työnnä muistipinoa
Vaihe 1: SP ← SP-1
Vaihe 2: 1000 [SP] ← CT
Pop-toiminto muistipinossa
Vaihe 1: DR ← M [SP]
Vaihe 2: SP ← SP-1
Vertailu rekisteriyksikköön, muistimoduuli tallentaa suuren määrän tietoa. Muistipinon kuva on esitetty alla olevassa kuvassa.
Muistipino
Muistin kokonaismäärä on jaettu kolmeen osaan, ensimmäisessä muistissa on ohjelma (ei muuta kuin ohjeet), toinen osa on tietoja (operandit) ja kolmas osa pinoa. Ohjelmaohjeet tallentuvat aina ohjelmalaskuriin (PC), tietorekisterit tunnistetaan osoiterekisterin (AR) avulla. Pinoa varten käytetty osoite 3000 - 4001 ja ensimmäinen kohde tai elementti tallennetaan osoitteeseen 4001.
Pino / pinon osoitin 8085-mikroprosessorissa
Ohjelmoijan näkymä 8085 mikroprosessori sisältää yleiskäyttöisiä rekistereitä ja erityiskäyttöön tarkoitetut rekisterit . Yleiskäyttöiset rekisterit ovat A, B, C, D, E, H, L ja erikoiskäyttöön tarkoitetut rekisterit ovat SP (pinon osoitin) ja PC (ohjelmalaskuri). Ohjelmointinäkymä 8085-mikroprosessorista on esitetty alla olevassa kuvassa.
Ohjelmoijan näkymä 8085
Pinoosoitin on 16-bittinen rekisteri, joka sisältää muistiosoitteen, oletetaan, että pinon osoittimen (SP) sisältö on FC78H, sitten mikroprosessori 8085 tulkitsee sen. Muistipaikoilla on hyödyllistä tietoa FC78H: sta FFFH: een ja FC77H: sta 0000H: een muistipaikassa ei ole hyödyllistä tietoa. Pinoosoittimen tulkinta on esitetty alla olevassa kuvassa.
Pinoosoittimen tulkinta
Pinon / pinon osoitimen perustoiminnot
Pinoa on kaksi toimintoa: PUSH-toiminta ja POP-toiminta.
PUSH-käyttö
PUSH tarkoittaa elementin työntämistä tai lisäämistä pinoon. PUSH-toiminto kasvattaa aina pinon osoitinta ja POP-toiminto aina pinon osoitinta. Työntötoiminnon yhteydessä on tarkistettava, onko vapaata tilaa käytettävissä. Jos vapaata tilaa on käytettävissä, voimme siirtyä työntötoimintoon, jos vapaata tilaa ei ole käytettävissä, tapahtuu ylivirtailmoitus. Ylivuoto on tarkistettava vastaavasti työnnön yhteydessä. Push and pop -toiminnon perustoiminto on esitetty alla olevassa kuvassa.
PUSH: n ja POP: n perustoiminnot
Kuva (a) on pino. Jos haluat työntää elementin, joka lisää elementin pinoon, sinun on työnnettävä (s, a), missä ’s’ ei ole muuta kuin pino. Pinoan asetamme ‘a’ -elementin ja tämä toimenpide on esitetty kuvassa (b). Katso kuva (3), oletetaan, että pino sisältää kolme elementtiä a, b, c ja pino on täytetty elementillä.
Jos haluat lisätä neljännen elementin ‘d’ painikkeilla (s, d), mutta elementin lisäämiseksi ei ole tilaa, se tarkoittaa, että pino on ylivuoto. Ylivuototerminologiaa käytetään, kun pino on täynnä ja työntöalgoritmi on esitetty alla.
työnnä (pino [], yläosa, enimmäispino, kohde)
jos (alkuun == maxstack-1)
{
tulosta 'ylivuoto'
}
muu
{
ylhäältä = ylhäältä + 1
pino [alkuun] = kohde
}
loppuun
POP-käyttö
POP tarkoittaa elementin poistamista pinon yläosasta. Pop-toiminnon tapauksessa meidän on tarkistettava, onko pino alun perin tyhjä vai ei. Jos pino on aluksi tyhjä, tapahtuu alivirtaustilanne. Oletetaan, että pino on vielä tyhjä, mutta haluat lisätä pinon elementit, mutta pinossa ei ole elementtejä, se johtaa pinon alivuotoon.
Alivuoto on tarkistettava, jos kyseessä on pop-toiminta. Pop-toiminnossa riippumatta siitä, mikä pino on ylin elementti, joka tulisi ponnahtaa tai poistaa, joten ei tarvitse mainita, mikä elementti ponnahtaa, oletusarvoisesti ylin elementti ponnahtaa. Pop-toiminnan algoritmi on esitetty alla.
pop (pino [], yläosa, kohde)
jos (alkuun == - 1)
{
tulosta 'alivirta'
}
muu
{
item = pino [alkuun]
top = top-1
}
Esimerkki
Elementit lisätään järjestyksessä A, B, C, D, E, se edustaa viiden elementin pinoa. Kuvassa (a) haluamme työntää 'A' -elementin pinoon, jolloin yläosasta tulee nolla (ylhäältä = 0), samoin yläosasta = 1, kun B-elementtiä työnnetään, ylhäältä = 2, kun 'C-elementtiä työnnetään, top = 3, kun D-elementti työnnetään, ja top = 4, kun E-elementti työnnetään.
Joten mitä elementtejä olen ottanut, sijoitetaan pinoon, nyt pino on täynnä. Jos haluat työntää toisen elementin, pinossa ei ole paikkaa, joten se osoittaa ylivuotoa. Nyt pino on täynnä, jos haluat ponnahtaa, elementti 'E' on ensin poistettava. Työntö on esitetty alla olevassa kuvassa.
Työnnä käyttö
Meidän on käytettävä pop-toimintoa pinoelementtien poistamiseen. Joten mainitse vain pop (), älä kirjoita argumentteja popiin, koska se poistaa oletusarvoisesti ylimmän elementin. Ensimmäinen E-elementti poistetaan seuraavasta D-elementistä… A ’. Kun ylimmät elementit poistetaan, ylin arvo pienenee. Kun ylä = -1, pino osoittaa alivuotoa. Pop-toiminto on esitetty alla olevassa kuvassa.
POP-käyttö
Joten tämä on selitys siitä, miten elementit lisätään ja poistetaan pinosta push and pop -toiminnon avulla.
Sovellukset
Pino / pinon osoittimen sovellukset ovat
- Merkkijonon kääntäminen
- Tasapainoinen suluissa
- UNDO / FINGER
- Järjestelmäpino aktivointitietueita varten
- Infix, etuliite, postfix, lauseke
UKK
1). Mikä on pinon osoitin käsivarressa?
Pinoosoitinrekisteri (R13), jota käytetään osoittimena aktiiviselle pinolle ARM: ssä.
2). Miksi pinon osoitin on 16-bittinen?
Pinoosoitin (SP) ja ohjelmalaskuri (PC), joita käytetään edellisen sijainnin ja muistipaikkaosoitteen tallentamiseen, on 16 bittiä, joten pinonosoitin (SP) on myös 16-bittinen.
3). Mikä on pinon osoittimen rooli?
Pinoosoittimen (SP) tehtävänä on osoittaa pinon elementin yläosa.
4). Mitä pinoa käytetään vuonna 8085?
Vuonna 8085 käytetty pino on Last In First Out (LIFO).
5). Onko pinon osoitin rekisteri?
Kyllä, pinon osoitin (SP) on osoiterekisteri, joka osoittaa aina pinon elementin yläosan.