A. 什么叫堆栈8051堆栈指示器SP有多少位,作用是什么单片机初始化话后SP中的内容是什么
堆栈是连续的内存单元,存取方式遵循“先进后出”的原则。
其作用渗困一般是保存寄存器或标志寄存器的内容。堆栈就是这样一种数据结构。它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始放入数据的单元叫做“栈底”。数据一个一个地存入,这个过程叫做“压栈”。在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1。读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减 1。这个过程叫做“弹出pop”。如此就实现了后进先出的原则。SP是一个8位专用寄存器,它批示出堆栈顶部在内部RAM块中的位置。系统复位后,SP初始化为07H,实际上堆栈是由08H单元开始的。考虑08H~1FH单元分别慎喊纤属于工作寄存器区1~3,若在宽仿程序设计中用到这些区,则最好把SP值改值为1FH或更大的值。 SP是一个8位专用寄存器,它批示出堆栈顶部在内部RAM块中的位置。系统复位后,SP初始化为07H,实际上堆栈是由08H单元开始的。考虑08H~1FH单元分别属于工作寄存器区1~3,若在程序设计中用到这些区,则最好把SP值改值为1FH或更大的值。 MCS-51的堆栈是向上生成的,若SP=60H,CPU执行一和调用指令或者响应中断后,PC进栈,PCL保护到61H,PCH保护到62H,SP=62H。</SPAN></SPAN>
B. 堆栈的意思和作用
堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。
堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要春仔功能是暂时存放数据和地址,通常用来保护断点和现场。
堆桥森碧栈的词语解释是:堆栈īzhàn。(1)临时寄存货物的地方。堆栈的词语解释是:堆栈īzhàn。(1)临时寄存货物的地方。词性是:名词。注音是:ㄉ敏举ㄨㄟㄓㄢ_。拼音是:īzhàn。结构是:堆(左右结构)栈(左右结构)。
C. 单片机堆栈溢出怎么办,什么是堆栈
堆栈一般是在你调用子程序时,系统自动将当前调用点现场保留数据压入栈,并且在子程序中开设的局部变量也会占用栈空间。
解决方法有几个:
-修改编译配置,增大栈空间
-避免不必要的嵌套、频繁调用子程序,比如避免使用递归调用、多重嵌套
-避免在子程序中开设局部大容量变量,如果需要,可以考虑开设成全局变量,或临时使用公用全局变量计算
D. 什么是堆栈堆栈指针的SP的作用是什么8051单片机堆栈容量不超过多少字节
堆栈:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。
SP的作用是在51单片机中,SP栈指针是一个专用的8位寄存器,系统复位后,SP初始化为07H,使得堆栈指针实际上是由08H单元开始。
51堆栈的容量最大也不会超过128字节。
E. 单片机编程里面,堆栈怎么理解
堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且堆栈有特殊的数据传输指令,即‘PUSH’和‘POP’,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值的基础上)自动减1。由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP的值,就可以把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么一条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的混乱。不同作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题。当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是可以象普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存用了。
参考资料来源:吴鉴鹰吧
贡献文档:网络文库《吴鉴鹰单片机项目实战精讲》
单片机开发板学习参考:吴鉴鹰单片机开发板(视频教程详细,资源丰富,适合学习)
F. 在单片机里什么叫做堆栈
堆栈其实是一种数据结构,存入数据不需要地址,只需要PUSH和POP操作就可以实现数据的存储和取出,以先进后出为规则,数据操作全部都是在栈顶,有堆栈指针SP指向栈顶, 比如响应中断时CPU将当前处理的数据全部压入堆栈,转而执行中断程序,等到中断程序执行结束,在用POP操作取出栈顶的数据,继续刚刚被中断的操作,这在微机中就是微机响应中断保护现场。
G. 单片机中那部分是堆栈结构
答:
堆栈是在单片机片内的数据存储器里开辟的一段存储空间,要明白哪部分是堆栈结构,就要搞清楚单片机的数据存储器。
51单片机片内有256字节的数据存储器空间。00H-20H是工作寄存器空间,20H-30H是位寻址区,30H-80H是数据存储区,这段空间可以设置堆栈,80H-FFH是特殊功能存储器空间。所以属于堆栈的空间为30H-80H。但在实际中这段空间还要存放数据,所以,要合理安排。
堆栈使用是要先设置初始地址,用SP
设置,PUSH指令用来把数据推入堆栈,POP从堆栈取出数据。采用“后进先出”原则,每压进一个数据,SP指针加一。
H. 在单片机中什么是堆栈它的作用是什么
在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。在计算机领域,堆栈是一个不容忽视的概念,堆栈是一种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。
堆栈是一个特定的存储区或寄存器,它的一端是固定的,另一端是浮动的。对这个存储区存入的数据,是一种特殊的数据结构。所有的数据存入或取出,只能在浮动的一端(称栈顶)进行,严格按照“先进后出”的原则存取,位于其中间的元素,必须在其栈上部(后进栈者)诸元素逐个移出后才能取出。在内存储器(随机存储器)中开辟一个区域作为堆栈,叫软件堆栈;用寄存器构成的堆栈,叫硬件堆栈。
(8)单片机什么是堆栈扩展阅读:
栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据在多个线程或者多个栈之间是不可以共享的,但是在栈内部多个值相等的变量是可以指向一个地址的,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。