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

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

什么是堆棧

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

硬件型號(hào):Huawei/華為 Mate 40

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

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

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

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

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

相關(guān)推薦

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