加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

什么是堆棧

2021/08/04
1107
閱讀需 2 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

硬件型號:Huawei/華為 Mate 40

系統(tǒng)版本:EMUI 11.0

堆棧都是一種數(shù)據(jù)項按序排列的數(shù)據(jù)結(jié)構(gòu),只能在一端【稱為棧頂(top)】對數(shù)據(jù)項進(jìn)行插入和刪除;在單片機(jī)應(yīng)用中,堆棧是個特殊的存儲區(qū),主要功能是暫時存放數(shù)據(jù)和地址,通常用來保護(hù)斷點(diǎn)和現(xiàn)場。

堆棧是一個特定的存儲區(qū)或寄存器,它的一端是固定的,另一端是浮動的 。堆這個存儲區(qū)存入的數(shù)據(jù),是一種特殊的數(shù)據(jù)結(jié)構(gòu)。所有的數(shù)據(jù)存入或取出,只能在浮動的一端(稱棧頂)進(jìn)行,嚴(yán)格按照“先進(jìn)后出”的原則存取,位于其中間的元素,必須在其棧上部(后進(jìn)棧者)諸元素逐個移出后才能取出。在內(nèi)存儲器隨機(jī)存儲器)中開辟一個區(qū)域作為堆棧,叫軟件堆棧;用寄存器構(gòu)成的堆棧,叫硬件堆棧。

單片機(jī)應(yīng)用中,堆棧是個特殊存儲區(qū),堆棧屬于RAM空間的一部分,堆棧用于函數(shù)調(diào)用、中斷切換時保存和恢復(fù)現(xiàn)場數(shù)據(jù)。堆棧中的物體具有一個特性:第一個放入堆棧中的物體總是被最后拿出來, 這個特性通常稱為先進(jìn)后出 (FILO—First-In/Last-Out)。 堆棧中定義了一些操作, 兩個最重要的是PUSH和POP。 PUSH(入棧)操作:堆棧指針(SP)加1,然后在堆棧的頂部加入一 個元素。POP(出棧)操作相反,出棧則先將SP所指示的內(nèi)部ram單元中內(nèi)容送入直接地址尋址的單元中(目的位置),然后再將堆棧指針(SP)減1。這兩種操作實現(xiàn)了數(shù)據(jù)項的插入和刪除。

(圖片來源于互聯(lián)網(wǎng)

相關(guān)推薦

電子產(chǎn)業(yè)圖譜