macpherson 发表于 2025-5-28 08:11

51单片机 堆栈与堆栈指针

堆栈是一种执行“先入后出”算法的数据结构。是在内存中的一个存储区域,数据一个一个顺序地存入(也就是“压入—PUSH”)这个区域之中。
      有一个地址指针(堆栈指针)总指向最后一个压入堆栈的数据所在的存储单元,存放这个地址指针的寄存器就叫做堆栈指示器。
开始放入数据的单元叫做“栈底”。数据一个一个地存入,这个过程叫做“压栈”。读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减1。这个过程叫做“弹出POP”。如此就实现了先入后出的原则。
MCS-51的堆栈是向上生成的(即向地址增加的方向),
堆栈指针SP的初始值称为栈底。
https://ask.qcloudimg.com/http-save/yehe-8223537/12f4aa6497e4d3d1e39d8e4ee29211d9.png


https://ask.qcloudimg.com/http-save/yehe-8223537/1e1ffe4d54152a3d81aeff45b5ba8caf.png


                                                                                 MCS–51单片机堆栈
需要注意的是,单片机复位后SP的值为07H,因此入栈数据将从08H存起。

页: [1]
查看完整版本: 51单片机 堆栈与堆栈指针