单片机堆栈指针

时间:2023-03-08作者:佚名
堆栈指针sp在片内RAM128B中开辟栈区,并随时跟踪栈顶地址。它是按"先进后出"的原则存取数据。开机复位后,单片机栈底地址为07H。
  主要用来保存临时数据,局部变量和中断/自程序的返回地址。
  堆栈指针总是指向栈顶元素。所以数据入栈的时候,堆栈指针先加1,再压栈。向上增长方式。和计算机的方式一样。
  出栈的时候先弹出数据,堆栈指针再减1。
  如果堆栈的实现是往上长的(就是说往顶的方向长,其实质是你的栈底是定死的不能动,入栈的东西只能不断往上叠,这就像你在书桌上放书一样,桌底是定死的,所以你的书只能一本一本地往上堆,往上长),计算机内部的堆栈的实现采取的就是这种模式,所以就得像你说的那样,“先修改指针,然后插入数据,出栈时刚好相反”,因为你堆栈指针指向的总是栈顶元素,栈底不能动,所以数据入栈前要先修改指针使它指向新的空余空间然后再把数据存进去,出栈的时候自然相反。
  然而,如果堆栈的实现是往下长的(就是说你每压一个元素入栈,栈底就自动下移一个元素的位置,其实质就是这种堆栈模型是一个“无底洞”型),这个时候,你的栈顶就变成了定死的,你就可以先压入元素,然后再修改指针。因为你的栈底是无限的,你压入一个元素,新的元素就取代先前的栈顶元素占据栈顶的位置,那么你先前的指向栈顶元素的指针这个时候就该修改让它指向这个新的栈顶元素了。
  下面的就是对“无底洞”型堆栈的一种实现的描述:
  压栈(入栈):将对象或者数据压入栈中,更新栈顶指针,使其指向最后入栈的对象或数据。
  弹栈(出栈):返回栈顶指向的对象或数据,并从栈中删除该对象或数据,更新栈顶。
  话说回来,计算机内部肯定选第一种模型,不会选第二种,因为第二种模型,每压入一个新的元素,都需要把之前堆栈里的所有元素整体下移动一个元素的位置,腾出栈顶元素的位置让新的元素进来,这种平移可是一笔不小的开销啊!但是并不是说“无底洞”模型就没办法实现了,其实它可以通过第一种模型来模拟的,每需要压入一个新的元素的时候,就先开辟一个空间,数据存入这个空间,然后再修改栈顶元素指针使其指向这个新的栈顶元素。
  换句话说,用链表的话,只要有足够的空间可开辟出来作为一个节点,那么两种堆栈模型都能实现(当然“无底洞”型还是如我上面说的那样用第一种模拟出来的,否则平移的工作量相当可观),如果用数组,由于数组在内存中是连续分配出来的空间,用第一种模型更自然一些。

相关阅读

贴片中器件电容移位原因是什么?

在进行smt贴片加工时,通过封装形式把电子电容器件这些物料准确无误地上在pcb板上,但是smt加工过程中,往往会出现贴片上的工艺问题,影响pcb的性能发挥或者pcb板的美观。比如器件...
2023-03-31
贴片中器件电容移位原因是什么?

弱电工程中常用的工具,知道最后一个的,小编给你加个大鸡腿!

俗话说:巧妇难为无米之炊,弱电工程施工必须认识和掌握一些常用的工具,今天一起来看看工程中常用的工具,你知道多少?你用过多少? 线盘 用于长距离的电源线盘接电,线盘长...
2023-06-11

你不知道三相四线电能表怎么接线?一文讲透

竟然有这么多电工,连三相四线电表接线都整不明白?今天一杯茶的功夫让你学会如何进行接线 三相四线电能表标准接线(直通式+互感器式) 一、直通式(电流≤100A,无互感器,家用/...
2026-06-17
你不知道三相四线电能表怎么接线?一文讲透

央视调查:你家的电表到底准不准?看到真相惊呆了!

小编最近在网上看到有人说: 中国75%的电表都被蓄意加速了 小编看后心里一惊: 电表好好的怎么会被加速呢? 难道我们每月交的电费里有“水分”? 为了了解真相 小编特地找来央视...
2023-06-11

30年老师傅的水电施工标准,这就是专业!

弹线定位 1、弹施工水平线: 确定标高±0.00点。在墙面用钢卷尺量出1000mm高的位置, 用红外线水平仪沿1000mm位置投射光影,沿四周墙面投影,用墨斗弹出施工水平线。 2、使用水电定位...
2023-06-11

热销商品

广东珠江电线电缆阻燃国标定制BYJBV BVR YJV YJY RVV RVS RV KVV

广东珠江电线电缆,专注于阻燃国标定制,产品涵盖BYJBVBVRYJVYJYRVVRVSRVKVV等多种规格。我们采用先进生产技术,严格遵循国家标准,确保产品质量可靠、性能稳定。产品适...
¥ 1

可换头防静电塑胶镊子ESD-7A/242/249/259防划伤夹IC硅晶片陶瓷头

ESD-7A/242/249/259是一款专为半导体行业设计的防静电塑胶镊子,有效防止静电对敏感电子元件的损害。其独特之处在于可更换的镊子头,包括专为夹持IC硅晶片和陶瓷元件...
¥ 2

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

86型开关超薄自粘贴式防水罩浴霸开关家用防水盒浴室插座防溅盒子

86型开关超薄自粘贴式防水罩浴霸开关,是一种专为家用浴室设计的创新产品。其采用超薄设计,无需复杂布线,自粘贴式安装方式简洁高效,有效节省空间。防水罩有效阻挡水汽...
¥ 3.9

L型套筒扳手铣口烟斗双头弯头7字穿孔机修六角汽修轮胎工具6-19mm

L型套筒扳手是一款常用于工业领域的多功能工具,具备双头设计,可高效完成铣口、烟斗等多种工件孔位加工,适用六角汽修、轮胎等场景。其套筒尺寸为6-19mm,精准适配各类...
¥ 3.5

网站栏目