



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、关于单片机堆栈概念的一个有趣的解释因为单片机有CPU、存储器、IO等等,使他(人性化一点以配合下文看起来就 像一个比较小的计算机,所以,在理解单片机的时候如果能把你之前有的那些也许仅 仅是直觉上的对计算机的理解融入进来的话,可能会对你学习单片机的概念有极大 的帮助,至少对于我是这样的。我想在关于单片机的众多让你头晕脑胀、摸不着头脑甚至想撞墙的概念里面,堆栈”可能是其中最可恶的一个,因为即使单单是从汉语的角度来理解这个词就已 经让你很晕了,其实我最初也想不通这是哪位大侠的创意,不过不用担心,这里我们 完全不去讨论关于这个词的问题(这个词用得其实很好堆”和栈”都有他们各自的 意思,准确的概括了这个
2、区域 的功能,有兴趣可以Baidu 一下,这里我会打一个比较 有趣的比方,以此来绕过那些令你想撞墙的概念,并使你在直觉上 对 堆栈”这个概 念有一个深刻的理解。你基本上应该清楚,单片机里面是有存储区和 CPU的,如果你不清楚,那么我刚 刚告诉你了,请记住。现在,请你把单片中的CPU想成一个人(你完全可以把他想成 是你宿舍的那个天天和你吵嘴的同学,一会你就会发现这会非常有趣,在这里就叫 他C哥吧,不过这个人不同于常人,有一些特点,一会我们会慢慢说清楚,现在要告诉 你的关于这个人的第一个特点是:他的记忆能力很差。下面,请你把存储区想象成一个一个 排好的小盒子,这 些盒子的作用大致可以分成两类:1、
3、保存写有你命令的纸条,比如你在某个盒子里 面的纸条上写着:去洗我的袜子! ; 2、保存你的一些东西,比如你那双正在污染宿舍 空气的臭袜子。因为C哥是一个记忆力不怎么好的人,所以,这些盒子都有自己的 编号,以方便他查找。那么,现在,我们可以来说明一下单片机是如何工作的了。首先,你要把所有的命令还有需要处理的东西放进那些小盒子,比如刚才提到的你那双待洗的袜子还有 那张纸条,这时你应该发现C哥另一个特点:笨一一他只会做你明确告诉他的事情, 也就是说,如果你没有在纸条上写 去洗我的袜子! ”那么C哥极有可能会无动于衷 地看着你的袜子直到他被熏晕倒,当然,更可能的情况是他根本找不到你的袜子 好了,当你把
4、要做的事情和该怎么做写到盒子里之后,下面的任务就交给C哥了。C 哥做事真的很讲原则,他会按照你给定的顺序或者一一如果你没有给定的话,根据盒 子上面的编号按照从小到大的顺序一个一个地打开盒子,读取里面的命令、处 理相应的事件,直到所有的事情都执行完毕,他就会休息。请你牢记这个简单而有 趣的过程用为其实单片机就是这样工作的,当然,这里忽略了许多细节,但是这对你 从直觉上理解单片机的概念以及足够了。下面,就要开始说明堆栈这个概念了 ,思来想去,还是觉得如果直接把 堆栈”这个词用到文中来,实在不符合本文的 风格考虑到其实 堆栈”也是存贮区(这一点你要记住,堆栈并不是一个像专用寄存器那样专门的一个 区域
5、,它是由你在 通用RAM区指定的。,按照本文的说法也就是一些盒子,所以, 现在我们把 堆栈”改名叫 记忆盒子”你可以感觉到,堆栈”的作用和记忆有极大的 关系,不过你也不用在这里纠结这 个名字的由来,下面我会说的。现在,请注意,我要开始解释 记忆盒子” 了,也就是 堆栈”。大致上说,记忆 盒子”的作用是当C哥执行某任务到一半的时候突然有了更紧急的是事情要执行的 时候用来保存当前任务的(包括盒子的编号和盒子里面的东西。这么说你肯定晕 了,其实,通俗一点,就是当C哥洗袜子洗到一半的时候 突然接到你的命令要去打开 另一个盒子(那个盒子里的纸条上可能写着给我换尿布”并执行里面的命令,因为 C哥记忆力很差
6、,以至于他做完那件紧急的事情后记不起要回到哪个盒 子来继续执 行 洗袜子”这个命令,这时候,他要把现在手头 的东西保存到 记忆盒子”里,要保存的 东西有:1、放着纸 条和袜子的盒子的编号(注意这里其实是两项内容;2、那双 袜 子。这样,当他执行完紧急任务后会去记忆盒子里,从里面找到两张纸条,和一双袜 子(这个时候C哥还是没有想起来他 要洗袜子,他必须要到那张写着洗袜子命令的纸 条,他按照两张纸条的信息知道自己要去哪个盒子去洗袜子,并在那里继续完成洗袜子的任务你可能会发现,在这一段的解释里面有一个重要的漏洞,那就是在C哥执行完紧急任务后他是如何知 道储存着原来的任务信息的盒子的编 号是存储在哪个
7、 记忆盒 子”里呢?别着急,下面我会解释的。从本质来说,记忆盒子”与普通的盒子是没有区别的,他们都是单片机里面的存 储单元,证明这一点的最好证据就是 堆栈是需要你来指定的,也就是说,你要预先把 一些盒子指定 为 记忆盒子”。下面,说明一下是如何指定 记忆盒子”的。其实 这个过程很简单,在单片机的专用寄存器里面有一个 SP指针(81H,这个指针里面记 录着堆栈的开始处的地址。用符 合本文的话来解释就是,C哥的衣服上有一个口袋 (也就是SP指针,这个口袋里面的 神奇纸条”上记录着第一个 记忆盒子”的编号,而 指定记忆盒子”的过程就是你在这张 神奇纸条”上写上一个盒子的编号(作为第一 个记忆盒子”的
8、编号,这个纸条会自动地将纸条上的编号加 1或者减1,所以,某个 目前并不确定的区域内盒子具备了成为记忆盒子”的可能,注意,堆栈的大小是不能规定的,这就是为什么用 生长”这个词来形容堆栈。现在,关于堆栈的概念基本上都介绍完了 ,但是,我知道,你可能还是很晕,甚至 比看之前还晕,那是因为刚才叙述的这 个过程是分开的,而且逻辑上并不是顺序的,下 面,顺序的说一下,相信你马上就明白了。主角仍然是傻傻笨笨但任劳任怨的 C哥,他一个一个的打 开盒子按照里面的纸 条上的说明执行你规定的任务。而你,为了防止他在执行复杂任务时犯傻,把一个盒 子指定为 记忆盒子”并把这个 记忆盒子”的位置写在了一张 神奇纸条”上
9、放在了 C哥的口袋里。现在,C哥正在洗你的袜子,这个时候,他突然接到你的命令要去给 你换尿布,而C哥知道自己很 笨,所以他自动地掏出了口袋里的纸条,找到了第一个 记忆盒子”然后拿出一张空白纸条,把装着 给我洗袜子”那张纸条的盒子的编号 写在了上面并放进 记忆盒子”。然后,他把 神奇纸条”放回了口袋里。当这个任 务完成后 神奇纸条”会自动将写在它上面的编号加1,也就是将一个新的、 空的 记忆盒子”的编号写在上面。之后,他会按照刚才的过程把 装着袜子的那个盒子的 编号以及袜子本身分别放进不同的记忆盒 子(现在已经有三个盒子成为 记忆盒子”堆栈已经长大了,红色下划线的字体就是这三个盒子里的内容,注意
10、是有先后 顺序的。再然后他就去给你换尿布了 现在,尿布换完了,不过,果不其然,C哥完全忘记了他 要给你洗袜子这件事情了 不过他记得一件事,那就是看口袋里的纸条。于是,他摸出了口袋里的纸条,上面当 然是一个记忆盒子”的编号,他按照编号找到了第一个记忆盒子”报照上一段的顺 序应该是第三个 记忆盒子”里面应该是一双你的袜子,于是他拿到了你的袜子。 但是,他还是不知道该干什么,于是他再次摸出了 神奇纸条”,这时,纸条上的 编号已经自动减 1了,于是,他找到了新的 记忆盒子”,里面的纸条上记录着袜子本来放置的盒 子的编号,于是,他把袜 子放到了那个盒子里。恩,你可以想到,现在 C哥还是 不知道 要对袜子做些什么, 他耐心的又一次摸出了那张 神奇纸条”,这次按照 上面的编号,他找到了一张纸条,上面写着的仍然是一个盒子的编号。C哥按照编号找到了那个盒子,发现那个盒 子里的纸条上写着 给我洗袜子! ”至此,C 哥又回到了原来 的任务洗袜子。现在,我希望你已经明白了,堆栈其实就
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年水质监测系统合作协议书
- 人力资源管理咨询服务协议要求
- 农村经济管理责任承包合同
- 健康饮食健康咨询协议
- 2025年重组链激酶项目发展计划
- 地产开发投资证明书(7篇)
- 金融科技解决方案合作合同
- 餐饮外卖行业智能化订单处理系统开发方案
- 2025年红外光学测量雷达项目建议书
- 出生日期与在职薪资证明(7篇)
- 建筑行业太阳能系统售后服务方案
- 《化学药剂公司营运资金管理问题和对策:以云南白药公司为例(8800字论文)》
- 2024江苏省中等职业学校学业水平考试思想政治卷及答案
- 蛇皮市场发展前景分析及供需格局研究预测报告
- 国家职业技术技能标准 4-03-02-10 调饮师 人社厅发202338号
- Unit 1 Travel教案-2023-2024学年高一下学期 中职英语高教版(2023修订版)基础模块2
- ASTM-D3359-(附著力测试标准)-中文版
- 统编版五年级下册语文第七单元情景化检测题(含答案)
- 2022年内分泌医疗质量控制评价体系与考核标准
- 2024年国家义务教育质量监测四年级英语模拟练习练习卷含答案
- 游艇码头设计规范
评论
0/150
提交评论