[技术问答] 单片机 堆栈与堆栈指针

[复制链接]
 楼主| rosemoore 发表于 2025-3-28 11:29 | 显示全部楼层 |阅读模式
堆栈是一种执行“先入后出”算法的数据结构。是在内存中的一个存储区域,数据一个一个顺序地存入(也就是“压入—PUSH”)这个区域之中。
        有一个地址指针(堆栈指针)总指向最后一个压入堆栈的数据所在的存储单元,存放这个地址指针的寄存器就叫做堆栈指示器。
开始放入数据的单元叫做“栈底”。数据一个一个地存入,这个过程叫做“压栈”。读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减1。这个过程叫做“弹出POP”。如此就实现了先入后出的原则。
MCS-51的堆栈是向上生成的(即向地址增加的方向),
堆栈指针SP的初始值称为栈底。






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

heisexingqisi 发表于 2025-3-28 14:38 | 显示全部楼层
堆栈是两个东西吧
狗啃模拟 发表于 2025-4-25 17:30 | 显示全部楼层
MCS-51的堆栈采用 "先入后出"规则。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

1579

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

61

主题

1579

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部