當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]堆棧指針sp在片內(nèi)RAM128B中開辟棧區(qū),并隨時(shí)跟蹤棧頂?shù)刂贰K前?quot;先進(jìn)后出"的原則存取數(shù)據(jù)。開機(jī)復(fù)位后,單片機(jī)棧底地址為07H。主要用來保存臨時(shí)數(shù)據(jù),局部變量和中斷/自程序的返回地址。堆棧指針總是指向棧頂元素。

堆棧指針sp在片內(nèi)RAM128B中開辟棧區(qū),并隨時(shí)跟蹤棧頂?shù)刂?。它是?quot;先進(jìn)后出"的原則存取數(shù)據(jù)。開機(jī)復(fù)位后,單片機(jī)棧底地址為07H。

主要用來保存臨時(shí)數(shù)據(jù),局部變量和中斷/自程序的返回地址。

堆棧指針總是指向棧頂元素。所以數(shù)據(jù)入棧的時(shí)候,堆棧指針先加1,再壓棧。向上增長方式。和計(jì)算機(jī)的方式一樣。

出棧的時(shí)候先彈出數(shù)據(jù),堆棧指針再減1。

如果堆棧的實(shí)現(xiàn)是往上長的(就是說往頂?shù)姆较蜷L,其實(shí)質(zhì)是你的棧底是定死的不能動(dòng),入棧的東西只能不斷往上疊,這就像你在書桌上放書一樣,桌底是定死的,所以你的書只能一本一本地往上堆,往上長),計(jì)算機(jī)內(nèi)部的堆棧的實(shí)現(xiàn)采取的就是這種模式,所以就得像你說的那樣,“先修改指針,然后插入數(shù)據(jù),出棧時(shí)剛好相反”,因?yàn)槟愣褩V羔樦赶虻目偸菞m斣?,棧底不能?dòng),所以數(shù)據(jù)入棧前要先修改指針使它指向新的空余空間然后再把數(shù)據(jù)存進(jìn)去,出棧的時(shí)候自然相反。

然而,如果堆棧的實(shí)現(xiàn)是往下長的(就是說你每壓一個(gè)元素入棧,棧底就自動(dòng)下移一個(gè)元素的位置,其實(shí)質(zhì)就是這種堆棧模型是一個(gè)“無底洞”型),這個(gè)時(shí)候,你的棧頂就變成了定死的,你就可以先壓入元素,然后再修改指針。因?yàn)槟愕臈5资菬o限的,你壓入一個(gè)元素,新的元素就取代先前的棧頂元素占據(jù)棧頂?shù)奈恢?,那么你先前的指向棧頂元素的指針這個(gè)時(shí)候就該修改讓它指向這個(gè)新的棧頂元素了。

下面的就是對(duì)“無底洞”型堆棧的一種實(shí)現(xiàn)的描述:

壓棧(入棧):將對(duì)象或者數(shù)據(jù)壓入棧中,更新棧頂指針,使其指向最后入棧的對(duì)象或數(shù)據(jù)。

彈棧(出棧):返回棧頂指向的對(duì)象或數(shù)據(jù),并從棧中刪除該對(duì)象或數(shù)據(jù),更新棧頂。

話說回來,計(jì)算機(jī)內(nèi)部肯定選第一種模型,不會(huì)選第二種,因?yàn)榈诙N模型,每壓入一個(gè)新的元素,都需要把之前堆棧里的所有元素整體下移動(dòng)一個(gè)元素的位置,騰出棧頂元素的位置讓新的元素進(jìn)來,這種平移可是一筆不小的開銷啊!但是并不是說“無底洞”模型就沒辦法實(shí)現(xiàn)了,其實(shí)它可以通過第一種模型來模擬的,每需要壓入一個(gè)新的元素的時(shí)候,就先開辟一個(gè)空間,數(shù)據(jù)存入這個(gè)空間,然后再修改棧頂元素指針使其指向這個(gè)新的棧頂元素。

換句話說,用鏈表的話,只要有足夠的空間可開辟出來作為一個(gè)節(jié)點(diǎn),那么兩種堆棧模型都能實(shí)現(xiàn)(當(dāng)然“無底洞”型還是如我上面說的那樣用第一種模擬出來的,否則平移的工作量相當(dāng)可觀),如果用數(shù)組,由于數(shù)組在內(nèi)存中是連續(xù)分配出來的空間,用第一種模型更自然一些。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉