什么叫堆栈?8051堆栈指示器SP有多少位,作用是什么?单片机初始化话后SP中的内容是什么?

作者&投稿:姬曲 (若有异议请与网页底部的电邮联系)
什么叫堆栈?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或更大的值。

什么叫堆栈?堆栈指示器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>

堆栈就是RAM中一块区域;
SP是8位;
作用是中断或函数调用时保存现场;
初始化后SP=07.

请您找任意一本编程书都会了解51的可以网上搜手册


什么叫堆栈?8051堆栈指示器SP有多少位,作用是什么?单片机初始化话后SP...
堆栈是连续的内存单元,存取方式遵循“先进后出”的原则。其作用一般是保存寄存器或标志寄存器的内容。堆栈就是这样一种数据结构。它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地...

什么是堆栈?堆栈指针的SP的作用是什么?8051单片机堆栈容量不超过多少...
1、在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆,顺序随意。栈,后进先出(Last-In\/First-Out)。区分队列 先进先出 2、堆栈是一...

什么是堆栈?堆栈指针的SP的作用是什么?8051单片机堆栈容量不超过多少...
堆栈:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。SP的作用是在51单片机中,SP栈指针是一个专用的8位寄存器,系统复位后,SP初始化为07H,使得堆栈指针实际上是...

8051单片机堆栈
51单片机的堆栈是向上生长的,就是堆栈不为空时,栈底地址小于栈顶地址,当将数据入栈时,栈顶地址增加。还有一个技巧是,堆栈是数据存储器的一部分,也就是说堆栈除了利用push和pop访问,也可以通过普通的选址方法访问,例如mov。有时我们想访问堆栈数据,但不想改动变动栈顶,这时可以通过mov来访问数...

8051单片机 PUSH POP指令的作用
一、PUSH、POP指令的作用:PUSH和POP 都是堆栈操作指令。实现压入操作的指令是PUSH指令;实现弹出操作的指令是POP指令。二、PUSH的操作过程是: (SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定 的操作数送入新的栈顶位置.此处的((SP))<--OPRD,也可以理解...

单片机中什么是堆栈深度?
单片机中的堆栈深度是指从栈顶开始的一段可支配内存大小,比如8051,SP=40H,那么深度是80H-40H=40H;如果SP=50H,那么深度是80H-50H=30H。而对于8052来说,深度就不一样了,因为可以扩展到FFH。所以同样SP=40H,那么深度是100H-40H=C0H。

如何理解8051单片机内部RAM的划分?
8051单片机内部RAM低128单元划分为工作寄存器组、位寻址区、堆栈与数据缓冲区。它们的特点如下:(1)工作寄存器组(00H——1FH)这是一个用寄存器直接寻址的区域,内部数据RAM区的0—31,共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0——R7。(2)位寻址区(20H——2FH...

80C51单片机堆栈中储存的是什么?
题目很有难度。调用子程序时,堆栈中储存的是“调用指令下一条指令”的地址。发生中断时,堆栈中储存的是“断点”地址。利用PUSH指令,堆栈还能储存片内RAM、SFR等,各直接寻址单元中的数据。

8051单片机片内数据存储器的三个存储区域是如何划分的
8051内部数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区。(1)00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器R0~R7。(2)20H~2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H~...

8051单片机内RAM容量有多少?可以分为哪几个区,各有什么特点?
堆栈和堆栈指针:堆栈是先进后出的原则进行读、写的特殊RAM。00H-1FH工作寄存器区,共4组,通过RS1.RS0选择工作寄存器组,20H-2FH共16字节(128个位)可位寻址区。30H-7FH通用寄存器区,用来存放程序执行过程中的临时参数和堆栈区。80H-0FFH特殊功能寄存器区,8051的特殊功能寄存器占用地址(未完全占用...

科尔沁右翼中旗15182101798: 什么叫堆栈?8051堆栈指示器SP有多少位,作用是什么?单片机初始化话后SP中的内容是什么? -
乘符美平: 堆栈是连续的内存单元,存取方式遵循“先进后出”的原则. 其作用一般是保存寄存器或标志寄存器的内容. 堆栈就是这样一种数据结构.它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中...

科尔沁右翼中旗15182101798: 什么是堆栈?堆栈指针的SP的作用是什么?8051单片机堆栈容量不超过多少字节? -
乘符美平: 在51单片机中,SP栈指针是一个专用的8位寄存器,系统复位后,SP初始化为07H,使得堆栈指针实际上是由08H单元开始.在响应中断或子程序调...

科尔沁右翼中旗15182101798: 堆栈指示器SP的作用是什么? -
乘符美平: 堆栈是一种执行“后进先出”算法的数据结构.设想有一个直径不大、一端开口一端封闭的竹筒.有若干个写有编号的小球,小球的直径比竹筒的直径略小.现在把不同编号的小球放到竹筒里面,可以发现一种规律:先放进去的小球只能后拿...

科尔沁右翼中旗15182101798: 什么叫堆栈 -
乘符美平: 堆栈是一种执行“后进先出”算法的数据结构. 设想有一个直径不大、一端开口一端封闭的竹筒.有若干个写有编号的小球,小球的直径比竹筒的直径略小.现在把不同编号的小球放到竹筒里面,可以发现一种规律:先放进去的小球只能后拿出...

科尔沁右翼中旗15182101798: 单片机中什么是堆栈深度? -
乘符美平: 单片机中的堆栈深度是指从栈顶开始的一段可支配内存大小,比如8051,SP=40H,那么深度是80H-40H=40H;如果SP=50H,那么深度是80H-50H=30H.而对于8052来说,深度就不一样了,因为可以扩展到FFH.所以同样SP=40H,那么深度是100H-40H=C0H.

科尔沁右翼中旗15182101798: 8051单片机堆栈 -
乘符美平: 51单片机的堆栈是向上生长的,就是堆栈不为空时,栈底地址小于栈顶地址,当将数据入栈时,栈顶地址增加.还有一个技巧是,堆栈是数据存储器的一部分,也就是说堆栈除了利用push和pop访问,也可以通过普通的选址方法访问,例如mov.有时我们想访问堆栈数据,但不想改动变动栈顶,这时可以通过mov来访问数据.还有一个书上很少提到的知识点是出栈之后,原来那个栈顶的内容并不会清零,所以我们依然可以像对待普通数据存储器一样访问.

科尔沁右翼中旗15182101798: 微机原理中断周期信息流问题,SP是堆栈指针,SP指示栈顶地址,信息流: CU控制(SP) - 1是何意思? -
乘符美平: 堆栈是一种数据结构,它是一个8位寄存器,它指示堆栈顶部在内部RAM中的位置.系统复位后,SP的初始值为07H,使得堆栈实际上是从08H开始的.因为sp有自动加1的性质.复位之后的sp指示的是栈底,随着sp增加,不断向上生长,所以sp指示的是栈顶地址

科尔沁右翼中旗15182101798: 什么是堆和栈啊? -
乘符美平: 你可以用这个比喻去理解:使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小.使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网