会员登陆
注册会员
首页
电工知识
机械维修
仪器仪表
工业控制
试题总结
安全用电
电力配电
电工配件
导航
本站搜索
电工知识
机械维修
仪器仪表
工业控制
试题总结
安全用电
电力配电
电工配件
家电弱电
业界资讯
通信技术
你的位置:
首页
>
家电弱电
>
单片机
单片机堆栈指针
2016-12-30 16:57:58 | 人围观 |
评论:
堆栈指针sp在片内RAM128B中开辟栈区,并随时跟踪栈顶地址。它是按"先进后出"的原则存取数据。开机复位后,单片机栈底地址为07H。
主要用来保存临时数据,局部变量和中断/自程序的返回地址。
堆栈指针总是指向栈顶元素。所以数据入栈的时候,堆栈指针先加1,再压栈。向上增长方式。和计算机的方式一样。
出栈的时候先弹出数据,堆栈指针再减1。
如果堆栈的实现是往上长的(就是说往顶的方向长,其实质是你的栈底是定死的不能动,入栈的东西只能不断往上叠,这就像你在书桌上放书一样,桌底是定死的,所以你的书只能一本一本地往上堆,往上长),计算机内部的堆栈的实现采取的就是这种模式,所以就得像你说的那样,“先修改指针,然后插入数据,出栈时刚好相反”,因为你堆栈指针指向的总是栈顶元素,栈底不能动,所以数据入栈前要先修改指针使它指向新的空余空间然后再把数据存进去,出栈的时候自然相反。
然而,如果堆栈的实现是往下长的(就是说你每压一个元素入栈,栈底就自动下移一个元素的位置,其实质就是这种堆栈模型是一个“无底洞”型),这个时候,你的栈顶就变成了定死的,你就可以先压入元素,然后再修改指针。因为你的栈底是无限的,你压入一个元素,新的元素就取代先前的栈顶元素占据栈顶的位置,那么你先前的指向栈顶元素的指针这个时候就该修改让它指向这个新的栈顶元素了。
下面的就是对“无底洞”型堆栈的一种实现的描述:
压栈(入栈):将对象或者数据压入栈中,更新栈顶指针,使其指向最后入栈的对象或数据。
弹栈(出栈):返回栈顶指向的对象或数据,并从栈中删除该对象或数据,更新栈顶。
话说回来,计算机内部肯定选第一种模型,不会选第二种,因为第二种模型,每压入一个新的元素,都需要把之前堆栈里的所有元素整体下移动一个元素的位置,腾出栈顶元素的位置让新的元素进来,这种平移可是一笔不小的开销啊!但是并不是说“无底洞”模型就没办法实现了,其实它可以通过第一种模型来模拟的,每需要压入一个新的元素的时候,就先开辟一个空间,数据存入这个空间,然后再修改栈顶元素指针使其指向这个新的栈顶元素。
换句话说,用链表的话,只要有足够的空间可开辟出来作为一个节点,那么两种堆栈模型都能实现(当然“无底洞”型还是如我上面说的那样用第一种模拟出来的,否则平移的工作量相当可观),如果用数组,由于数组在内存中是连续分配出来的空间,用第一种模型更自然一些。
< 上一篇
单片机嵌入式编程注意事项
下一篇 >
51单片机闪烁灯设计
标签:
相关内容推荐:
2016-12-30
单片机堆栈指针
2016-11-30
单片机堆栈溢出怎么解决?
变频器内部主电路简单分析
变频器选择注意事项
变频器的性能指标
低压变频器如何选型?低压变频器选型
安川变频器故障显示方式
变频器怎样接线?变频器接线端子说明
变频器控制的电机按停止按钮时,电机
变频器的输出功率该如何选择?
三菱变频器复位方法
变频器的频率为何调不上去?如何解决
推荐阅读
什么都不会可以学习电工吗?电工难学吗?电工应该怎么样入门?电工应该怎么样学精通?
安防门禁系统常见故障及维修方法
智能门锁用什么电池好?智能门锁电池用碳性好还是碱性好?常见5号AA电池选购指南
装修时零线火线接反了怎么办?老电工教您一招三分钟搞定
小型断路器上标数字都表示什么?小型断路器参数解析
电工经验分享:几个小窍门让你工作起来得心应手
万用表判断单相电机好坏方法图解
家装配电箱接线是否每个回路的零线都要接在零线排上?
电工入门到底该怎么样学习?电工入门应该五步走
电热水壶内部电路原理图及故障维修方法
电控系统运行过程中发生反复切换/
交流电中的有效电流是如何定义的?
什么是相电流和线电流
电机二次启动怎么接线?电动机星三
电气图分类有哪几类?电气图的十二大
单相功率和三相功率的测量方法及电
电气自锁和互锁的区别在哪里?怎么实
电工奇才对消毒机电气控制电路改造
已知设备功率,确定导线截面时需要考
解开面纱看本质 充电宝节电器骗术
最热文章
安装监控需要多少钱?人工费怎么算?安装监控收费标准
电容的公式
电热水壶内部电路原理图及故障维修方法
2020年电工职业资格证取消了?电工职业资格证退出国家目录
7812引脚图及参数,7812稳压电路图
雅迪电动车控制器接线图解读
plc编程工资多少一个月
汽车电动车窗的组成和电路图工作原理图解
新版电工证是不是只有电子版?电工证二维码能造假吗?新二维码电工证照图片
漏电保护器图形符号和文字符号
东芝电梯故障代码说明
汽车空调是耗油还是电
汽车发电机会一直发电吗?
几种易于在工程中使用的算法入门
电力电缆故障检测及故障点定位方法
电工最害怕的味道!
这样的导线发热原来不用换导线就能
西门子840D报警文本的制作
西门子828D一次垂直补偿功能调试
汽车曲轴位置传感器作用原理与识别
统计
全站搜索