91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

微軟公司宣布不再支持你正在使用的 IE瀏覽器,這會嚴(yán)重影響瀏覽網(wǎng)頁,請使用微軟最新的Edge瀏覽器
廠商專區(qū)
產(chǎn)品/技術(shù)
應(yīng)用分類

新手必看 堆棧指針在單片機(jī)當(dāng)中的作用

2016-05-23 09:15 來源:電源網(wǎng)綜合 編輯:鈴鐺

與單片機(jī)有關(guān)的知識點(diǎn)錯綜復(fù)雜,并且對于新手來說,想要在短時間內(nèi)掌握這些概念和技術(shù)并對其進(jìn)行歸類匯總是較為困難的。因此在學(xué)習(xí)過程中小編建議大家從一小部分開始學(xué)起,熟悉之后再進(jìn)行下一部分。在本文中,小編給就將為大家介紹單片機(jī)當(dāng)中有關(guān)堆棧指針的相關(guān)概念。

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

主要用來保存臨時數(shù)據(jù),局部變量和中斷/自程序的返回地址。堆棧指針總是指向棧頂元素。所以數(shù)據(jù)入棧的時候,堆棧指針先加1,再壓棧。向上增長方式與計算機(jī)的方式一樣。

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

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

然而,如果堆棧的實(shí)現(xiàn)是往下長的(就是說每壓一個元素入棧,棧底就自動下移一個元素的位置,其實(shí)質(zhì)就是這種堆棧模型是一個“無底洞”型),這個時候,棧頂就變成了定死的,就可以先壓入元素,然后再修改指針。因?yàn)闂5资菬o限的,壓入一個元素,新的元素就取代先前的棧頂元素占據(jù)棧頂?shù)奈恢茫敲聪惹暗闹赶驐m斣氐闹羔樳@個時候就該修改讓它指向這個新的棧頂元素了。




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

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

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

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

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

以上的內(nèi)容就是有關(guān)單片機(jī)堆棧指針的定義以及對其工作過程、原理的簡述。對于新手來說單片機(jī)的知識體系較為龐大,掌握起來也較為困難,因此針對每個知識點(diǎn)進(jìn)行有針對性的了解才能最好的掌握知識。希望大家在閱讀本文后能夠有所收獲。

標(biāo)簽: 堆棧指針 單片機(jī)

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電源網(wǎng)。本網(wǎng)站原創(chuàng)內(nèi)容,如需轉(zhuǎn)載,請注明出處;本網(wǎng)站轉(zhuǎn)載的內(nèi)容(文章、圖片、視頻)等資料版權(quán)歸原作者所有。如我們采用了您不宜公開的文章或圖片,未能及時和您確認(rèn),避免給雙方造成不必要的經(jīng)濟(jì)損失,請電郵聯(lián)系我們,以便迅速采取適當(dāng)處理措施;歡迎投稿,郵箱∶editor@netbroad.com。

相關(guān)閱讀

微信關(guān)注
技術(shù)專題 更多>>
技術(shù)專題之EMC
技術(shù)專題之PCB

頭條推薦

電子行業(yè)原創(chuàng)技術(shù)內(nèi)容推薦
客服熱線
服務(wù)時間:周一至周五9:00-18:00
微信關(guān)注
獲取一手干貨分享
免費(fèi)技術(shù)研討會
editor@netbroad.com
400-003-2006
主站蜘蛛池模板: 青浦区| 卓资县| 沈阳市| 高淳县| 长汀县| 达孜县| 木兰县| 新津县| 恩施市| 景德镇市| 托克逊县| 古田县| 大连市| 巴南区| 广昌县| 桃园市| 白水县| 临漳县| 宜昌市| 根河市| 长乐市| 汝阳县| 湖南省| 富顺县| 陆良县| 略阳县| 安乡县| 高邮市| 黄冈市| 丰顺县| 鄂托克旗| 红桥区| 罗甸县| 建宁县| 曲水县| 和硕县| 德化县| 宿松县| 藁城市| 炉霍县| 龙山县|