స్టాక్ అనేది సరళ డేటా నిర్మాణం తప్ప మరొకటి కాదు, ఇక్కడ చొప్పించడం మరియు తొలగించడం ఒక చివర మాత్రమే జరుగుతుంది. చొప్పించే ఆపరేషన్కు PUSH అని పిలువబడే ప్రత్యేక పేరు ఉంది మరియు తొలగింపు ఆపరేషన్కు POP అని పిలువబడే ప్రత్యేక పేరు కూడా ఉంది. PUSH మరియు POP రెండు ప్రాథమిక కార్యకలాపాలు, ఇవి ఒక నిర్దిష్ట స్టాక్లో మాత్రమే నిర్వహించబడతాయి. ఇది మెమరీ స్థానాల సమూహం మరియు మెమరీ స్థానాలు మెమరీని చదవడానికి లేదా మెమరీని వ్రాయడానికి సంబంధించినవి. ప్రోగ్రామ్ అమలు సమయంలో బైనరీ సమాచారాన్ని నిల్వ చేయడానికి ఇది ఉపయోగించబడుతుంది, మేము ఏదైనా ప్రోగ్రామ్ను అమలు చేస్తున్నప్పుడు ఆ ప్రోగ్రామ్లోని విషయాలు స్టాక్లో నిల్వ చేయబడతాయి. ఇది అనుసరిస్తుంది లాస్ట్ ఇన్ ఫస్ట్ అవుట్ (LIFO) మరియు ఇది డేటాను నిల్వ చేయడానికి మరియు తిరిగి పొందటానికి మాత్రమే ఉపయోగించబడుతుంది కాని డేటాను నిల్వ చేయడానికి ఉపయోగించబడదు. స్టాక్ / స్టాక్ పాయింటర్ యొక్క సంక్షిప్త వివరణ క్రింద చర్చించబడింది.
స్టాక్ / స్టాక్ పాయింటర్ అంటే ఏమిటి?
నిర్వచనం: స్టాక్ అనేది ఒక నిల్వ పరికరం, ఇది సమాచారం లేదా డేటాను LIFO (లాస్ట్ ఇన్ ఫస్ట్ అవుట్) పద్ధతిలో నిల్వ చేయడానికి ఉపయోగిస్తారు. మేము డేటాను LIFO రూపంలో ఎంటర్ చేసినప్పుడల్లా, మొదట తొలగించాల్సిన మూలకం చివరి ఇన్సర్టర్ మూలకం, కాబట్టి చివరిగా చొప్పించిన మూలకం మొదట బయటకు తీయబడుతుంది. ఇది స్టాక్ పాయింటర్ (SP) అని పిలువబడే చిరునామా రిజిస్టర్లోని మెమరీ యూనిట్. స్టాక్ పాయింటర్ ఎల్లప్పుడూ స్టాక్లోని అగ్ర మూలకాన్ని సూచిస్తుంది, అంటే డేటాను ఏ ప్రదేశంలో చేర్చాలో అర్థం.
స్టాక్ రకాలు
అవి రిజిస్టర్ స్టాక్ మరియు మెమరీ స్టాక్ అనే రెండు రకాల స్టాక్లు ఉన్నాయి.
రిజిస్టర్ స్టాక్
రిజిస్టర్ స్టాక్ కూడా మెమరీ యూనిట్లో ఉన్న మెమరీ పరికరం, అయితే ఇది తక్కువ మొత్తంలో డేటాను మాత్రమే నిర్వహిస్తుంది. మెమరీతో పోలిస్తే రిజిస్టర్ స్టాక్ యొక్క పరిమాణం చాలా తక్కువగా ఉన్నందున స్టాక్ లోతు ఎల్లప్పుడూ రిజిస్టర్ స్టాక్లో పరిమితం.
రిజిస్టర్ స్టాక్లో పుష్ ఆపరేషన్
దశ 1: స్టాక్ పాయింటర్ 1 ద్వారా పెరుగుతుంది.
SP ← SP + 1
దశ 2: డేటాను స్టాక్లోకి నమోదు చేయండి.
1000 [SP] CT
DR అనేది డేటా రిజిస్టర్
దశ 3: స్టాక్ నిండి ఉందో లేదో తనిఖీ చేయండి
(sp = 0) అయితే (పూర్తి ← 1)
దశ 4: ఖాళీగా లేదని గుర్తించండి
ఖాళీ ← 0
రిజిస్టర్ స్టాక్లో పాప్ ఆపరేషన్
దశ 1: స్టాక్ నుండి డేటాను చదవండి.
DR M [SP]
దశ 2: తగ్గింపు స్టాక్ పాయింట్.
ఎస్పీ ← ఎస్పీ -1
దశ 3: స్టాక్ ఖాళీగా ఉందో లేదో తనిఖీ చేయండి
sp = 0 అయితే ఖాళీ ← 1
64-బిట్ రిజిస్టర్ స్టాక్ యొక్క స్టాక్ సంస్థ క్రింది చిత్రంలో చూపబడింది.
స్టాక్ సంస్థను నమోదు చేయండి
మెమరీ స్టాక్
మెమరీ స్టాక్లో, స్టాక్ లోతు అనువైనది. ఇది పెద్ద మొత్తంలో మెమరీ డేటాను ఆక్రమిస్తుంది, అయితే రిజిస్టర్ స్టాక్లో పరిమిత సంఖ్యలో మెమరీ పదాలు మాత్రమే నిల్వ చేయబడతాయి.
మెమరీ స్టాక్లో పుష్ ఆపరేషన్
దశ 1: ఎస్పీ ← ఎస్పీ -1
దశ 2: 1000 [SP] CT
మెమరీ స్టాక్లో పాప్ ఆపరేషన్
దశ 1: DR M [SP]
దశ 2: ఎస్పీ ← ఎస్పీ -1
రిజిస్టర్ యూనిట్తో పోల్చండి, మెమరీ యూనిట్ పెద్ద మొత్తంలో డేటాను నిల్వ చేస్తుంది. మెమరీ స్టాక్ ఫిగర్ క్రింది చిత్రంలో చూపబడింది.
మెమరీ స్టాక్
మొత్తం మెమరీ యూనిట్ మూడు భాగాలుగా విభజించబడింది, మొదటి మెమరీ యూనిట్లో ప్రోగ్రామ్ ఉంది (సూచనలు తప్ప మరేమీ లేదు), రెండవ భాగం డేటా (ఒపెరాండ్స్) మరియు మూడవ భాగం స్టాక్. ప్రోగ్రామ్ సూచనలు ఎల్లప్పుడూ ప్రోగ్రామ్ కౌంటర్ (పిసి) లో నిల్వ చేయబడతాయి, డేటా రిజిస్టర్లు చిరునామా రిజిస్టర్ (AR) ద్వారా గుర్తించబడతాయి. చిరునామా 3000 నుండి 4001 వరకు స్టాక్ మరియు మొదటి అంశం లేదా మూలకం 4001 వద్ద నిల్వ చేయబడుతుంది.
8085 మైక్రోప్రాసెసర్లో స్టాక్ / స్టాక్ పాయింటర్
8085 యొక్క ప్రోగ్రామర్ వీక్షణ మైక్రోప్రాసెసర్ సాధారణ-ప్రయోజన రిజిస్టర్లను కలిగి ఉంటుంది మరియు ప్రత్యేక ప్రయోజన రిజిస్టర్లు . సాధారణ-ప్రయోజన రిజిస్టర్లు A, B, C, D, E, H, L, మరియు ప్రత్యేక ప్రయోజన రిజిస్టర్లు SP (స్టాక్ పాయింటర్) మరియు PC (ప్రోగ్రామ్ కౌంటర్). 8085 మైక్రోప్రాసెసర్ యొక్క ప్రోగ్రామర్ వీక్షణ క్రింది చిత్రంలో చూపబడింది.
8085 యొక్క ప్రోగ్రామర్ వీక్షణ
స్టాక్ పాయింటర్ 16-బిట్ రిజిస్టర్లో మెమరీ చిరునామా ఉంటుంది, స్టాక్ పాయింటర్ (SP) విషయాలు FC78H అని అనుకుందాం, అప్పుడు మైక్రోప్రాసెసర్ 8085 దానిని వివరిస్తుంది. మెమరీ స్థానాలు FC78H నుండి FFFH వరకు మరియు FC77H నుండి 0000H వరకు ఉపయోగకరమైన సమాచారాన్ని కలిగి ఉంటాయి. మెమరీ స్థానానికి ఉపయోగకరమైన సమాచారం లేదు. స్టాక్ పాయింటర్ యొక్క వివరణ క్రింద ఉన్న చిత్రంలో చూపబడింది.
స్టాక్ పాయింటర్ యొక్క వివరణ
స్టాక్ / స్టాక్ పాయింటర్ యొక్క ప్రాథమిక ఆపరేషన్లు
అవి స్టాక్ యొక్క రెండు ఆపరేషన్లు: పుష్ ఆపరేషన్ మరియు POP ఆపరేషన్.
పుష్ ఆపరేషన్
పుష్ అంటే స్టాక్లోకి ఒక మూలకాన్ని నెట్టడం లేదా చొప్పించడం. PUSH ఆపరేషన్ ఎల్లప్పుడూ స్టాక్ పాయింటర్ను పెంచుతుంది మరియు POP ఆపరేషన్ ఎల్లప్పుడూ స్టాక్ పాయింటర్ను తగ్గిస్తుంది. పుష్ ఆపరేషన్ విషయంలో, ఖాళీ స్థలం ఉందా లేదా అని మనం తనిఖీ చేయాలి. ఖాళీ స్థలం అందుబాటులో ఉంటే, మేము పుష్ ఆపరేషన్కు వెళ్ళవచ్చు, ఖాళీ స్థలం అందుబాటులో లేకపోతే లోపం సందేశం సంభవిస్తుంది. పుష్ ఆపరేషన్ విషయంలో ఓవర్ఫ్లోను తనిఖీ చేయాలి. పుష్ మరియు పాప్ యొక్క ప్రాథమిక ఆపరేషన్ క్రింది చిత్రంలో చూపబడింది.
PUSH మరియు POP యొక్క ప్రాథమిక ఆపరేషన్
మూర్తి (ఎ) స్టాక్. మీరు మూలకాన్ని చొప్పించే మూలకాన్ని స్టాక్లోకి నెట్టాలనుకుంటే, మీరు (లు, ఎ) నెట్టాలి, ఇక్కడ ‘లు’ స్టాక్ తప్ప మరేమీ కాదు. స్టాక్లో, మేము ‘ఎ’ మూలకాన్ని ఉంచుతున్నాము మరియు ఈ ఆపరేషన్ ఫిగర్ (బి) లో చూపబడింది. ఫిగర్ (3) చూడండి, స్టాక్లో a, b, c అనే మూడు అంశాలు ఉన్నాయని అనుకుందాం మరియు స్టాక్ ఒక మూలకంతో నిండి ఉంటుంది.
మీరు పుష్ (లు, డి) ను ఉపయోగించి నాల్గవ మూలకం-‘డి’ ను చొప్పించాలనుకుంటే, మూలకాన్ని చొప్పించడానికి స్థలం అందుబాటులో లేదు, అప్పుడు అది స్టాక్ పొంగిపొర్లుతుందని సూచిస్తుంది. స్టాక్ నిండినప్పుడు మరియు పుష్ ఆపరేషన్ యొక్క అల్గోరిథం క్రింద చూపినప్పుడు ఓవర్ఫ్లో పరిభాష ఉపయోగించబడుతుంది.
పుష్ (స్టాక్ [], టాప్, మాక్స్ స్టాక్, ఐటమ్)
if (టాప్ == మాక్స్ స్టాక్ -1)
{
“ఓవర్ఫ్లో” ముద్రించండి
}
లేకపోతే
{
టాప్ = టాప్ + 1
stack [top] = అంశం
}
ముగింపు
POP ఆపరేషన్
POP అంటే స్టాక్ పైభాగంలో ఉన్న మూలకాన్ని తొలగించడం. పాప్ ఆపరేషన్ విషయంలో, స్టాక్ మొదట్లో ఖాళీగా ఉందో లేదో తనిఖీ చేయాలి. స్టాక్ మొదట్లో ఖాళీగా ఉంటే అండర్ ఫ్లో పరిస్థితి ఏర్పడుతుంది. స్టాక్ ఖాళీగా ఉందని అనుకుందాం, మీరు స్టాక్లోని మూలకాలను పాప్ చేయాలనుకుంటున్నారు, కాని స్టాక్లో మూలకాలు లేవు, అప్పుడు అది అండర్ఫ్లో స్టాక్కు దారితీస్తుంది.
పాప్ ఆపరేషన్ విషయంలో అండర్ ఫ్లో తనిఖీ చేయాలి. పాప్ ఆపరేషన్లో టాప్ ఎలిమెంట్ ఏమైనా స్టాక్లో ఉండి పాప్ చేయబడాలి లేదా తొలగించబడాలి, కాబట్టి ఏ మూలకం పాప్ చేయబడుతుందో చెప్పనవసరం లేదు, అప్రమేయంగా అగ్రశ్రేణి మూలకం పాప్ చేయబడుతుంది. పాప్ ఆపరేషన్ యొక్క అల్గోరిథం క్రింద చూపబడింది.
పాప్ (స్టాక్ [], టాప్, ఐటమ్)
if (టాప్ == - 1)
{
“అండర్ ఫ్లో” ముద్రించండి
}
లేకపోతే
{
అంశం = స్టాక్ [టాప్]
టాప్ = టాప్ -1
}
ఉదాహరణ
మూలకాలు A, B, C, D, E గా క్రమంలో చేర్చబడతాయి, ఇది ఐదు మూలకాల స్టాక్ను సూచిస్తుంది. ఫిగర్ (ఎ) లో, మేము 'ఎ' మూలకాన్ని స్టాక్పైకి నెట్టాలనుకుంటున్నాము, అప్పుడు పైభాగం సున్నా అవుతుంది (టాప్ = 0), అదేవిధంగా 'బి' మూలకం నెట్టివేసినప్పుడు టాప్ = 1, 'సి' మూలకం ఉన్నప్పుడు టాప్ = 2 నెట్టబడుతుంది, 'D' మూలకం నెట్టివేయబడినప్పుడు టాప్ = 3, మరియు 'E' మూలకం నెట్టివేయబడినప్పుడు టాప్ = 4.
కాబట్టి నేను తీసుకున్న అంశాలు ఏమైనా స్టాక్లో ఉంచబడ్డాయి, ఇప్పుడు స్టాక్ నిండింది. మీరు మరొక మూలకాన్ని నెట్టాలనుకుంటే స్టాక్లో చోటు లేదు, కాబట్టి ఇది ఓవర్ఫ్లోను సూచిస్తుంది. మీరు మూలకం పాప్ చేయాలనుకుంటే ఇప్పుడు స్టాక్ నిండి ఉంది ‘E’ మూలకం మొదట తొలగించబడాలి. పుష్ ఆపరేషన్ క్రింది చిత్రంలో చూపబడింది.
పుష్ ఆపరేషన్
స్టాక్లోని మూలకాలను తొలగించడానికి మేము పాప్ ఆపరేషన్ను ఉపయోగించాలి. కాబట్టి పాప్ () ను పాప్లో వాదనలు రాయవద్దు ఎందుకంటే అప్రమేయంగా ఇది అగ్ర మూలకాన్ని తొలగిస్తుంది. మొదటి ‘ఇ’ మూలకం తదుపరి ‘డి’ మూలకం తొలగించబడుతుంది… .. ‘ఎ’. ఎగువ అంశాలు తొలగిస్తున్నప్పుడు అగ్ర విలువ తగ్గుతుంది. ఎగువ = -1 ఉన్నప్పుడు స్టాక్ అండర్ ఫ్లోను సూచిస్తుంది. పాప్ ఆపరేషన్ క్రింది చిత్రంలో చూపబడింది.
POP ఆపరేషన్
కాబట్టి పుష్ మరియు పాప్ ఆపరేషన్ను ఉపయోగించి స్టాక్లో మూలకాలు ఎలా చొప్పించబడతాయి మరియు తొలగించబడతాయి అనేదానికి ఇది వివరణ.
అప్లికేషన్స్
స్టాక్ / స్టాక్ పాయింటర్ యొక్క అనువర్తనాలు
- స్ట్రింగ్ రివర్సల్
- సమతుల్య కుండలీకరణం
- UNDO / FINGER
- సక్రియం రికార్డుల కోసం సిస్టమ్ స్టాక్
- ఇన్ఫిక్స్, ఉపసర్గ, పోస్ట్ఫిక్స్, వ్యక్తీకరణ
తరచుగా అడిగే ప్రశ్నలు
1). చేతిలో స్టాక్ పాయింటర్ ఏమిటి?
ARM లోని యాక్టివ్ స్టాక్కు పాయింటర్గా ఉపయోగించే స్టాక్ పాయింటర్ రిజిస్టర్ (R13).
2). స్టాక్ పాయింటర్ 16 బిట్ ఎందుకు?
మునుపటి స్థానం మరియు మెమరీ స్థాన చిరునామా 16 బిట్స్ నిల్వ చేయడానికి ఉపయోగించిన స్టాక్ పాయింటర్ (ఎస్పి) మరియు ప్రోగ్రామ్ కౌంటర్ (పిసి), కాబట్టి స్టాక్ పాయింటర్ (ఎస్పి) కూడా 16 బిట్.
3). స్టాక్ పాయింటర్ పాత్ర ఏమిటి?
స్టాక్ పాయింటర్ (SP) యొక్క పాత్ర స్టాక్లోని మూలకం యొక్క పైభాగాన్ని సూచించడం.
4). 8085 లో ఏ స్టాక్ ఉపయోగించబడుతుంది?
8085 లో ఉపయోగించిన స్టాక్ లాస్ట్ ఇన్ ఫస్ట్ అవుట్ (LIFO).
5). స్టాక్ పాయింటర్ రిజిస్టర్?
అవును, స్టాక్ పాయింటర్ (SP) అనేది చిరునామా రిజిస్టర్, ఇది స్టాక్లోని మూలకం యొక్క పైభాగాన్ని ఎల్లప్పుడూ సూచిస్తుంది.