Mikä on pino / pinon osoitin: tyypit ja sen sovellukset

Kokeile Instrumenttia Ongelmien Poistamiseksi





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

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

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

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

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

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ö

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ö

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.

Tässä artikkelissa mitä on