导航:首页 > 操作系统 > 单片机堆栈指针sp

单片机堆栈指针sp

发布时间:2023-01-31 08:52:21

❶ 什么是堆栈,51单片机堆栈指针SP的使用

在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。要点:堆,队列优先,先进先出(FIFO—first in first out)[1] 。栈,先进后出(FILO—First-In/Last-Out)。

❷ 51单片机的堆栈指针sp始终是指向

51单片机的堆栈指针SP始终指向栈顶。

❸ 单片机里sp是什么意思啊

单片机里sp是堆栈指针。

堆栈指针SP英文全称为stack pointer,是单片机控制器的组成部件之一,与时控制逻辑电路、指令寄存器译码器、地址指针DPTR、程序计数器等部件共同组成CPU的神经中枢。堆栈指针在单片机里的作用是随时跟踪栈顶地址,以便存取单片机的数据。

每当执一次PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值的基础上)自动减1。

(3)单片机堆栈指针sp扩展阅读

由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP的值,就可以把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就是把堆栈设置在从内存单元60H开始的单元中。

一般程序的开头总有这么一条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的混乱。

不同作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题。当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是可以象普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存用了。

❹ 单片机的堆栈指针SP有什么作用

在51单片机中,SP栈指针是一个专用的8位寄存器,系统复位后,SP初始化为07H,使得堆栈指针实际上是由08H单元开始。
在响应中断或子程序调用时,发生入栈操作,入栈的是16位PC值;51中有PUSH压入和POP弹出栈操作指令,如有必要,在中断或调用子程序时可用POSU指令把PSW或其它需要保护的寄存器的内容压入堆栈加以保护;返回前再使用POP指令把它们恢复。

❺ 51单片机堆栈指针一般设置多少

51单片机堆栈指针一般设置80H。单片机复位后,堆栈指针SP为07H,指向了工作寄存器组0中的R7,用户初始化程序都应对SP设置初值,一般设置在80H以后的单元为宜。

❻ 51单片机中sp=05什么意思

有五个指针。因为单片机里sp是堆栈指针,所以51单片机中sp=05的表示,意思是有有五个指针。堆栈指针SP英文全称为stackpointer,是单片机控制器的组成部件之一,与时控制逻辑电路、指令寄存器译码器、地址指针DPTR、程序计数器等部件程序计数器等部件共同组成CPU的神经中枢。

❼ MCS-51单片机汇编语言的SP指令有什么作用

MCS-51单片机汇编语言中,没有SP这条指令,只有针对SP操作的指令。51单片机中SP是堆栈指针寄存器,存放着当前堆栈地址。堆栈用于存储子程序调用、中断程序调用时程序返回的地址,或者用来临时保存某一寄存器的值。x0dx0a除了初始化堆栈时直接给SP赋值,SP显式存在,其它的对SP有影响的指令,对SP的操作都是隐式的,就是说SP并不出现在指令操作数当中。x0dx0a例如:x0dx0aMOVSP,#80H;初始堆栈指针,(SP)=80Hx0dx0aLCALLXXXX;调用XXXX处的子程序,下一条指令PC值压栈,(SP)=(SP)+2x0dx0aNOP;子程序返回时,RET指令从堆栈中弹出PC值,所以会返回到这里,(SP)=(SP)-2x0dx0aPUSHACC;累加器A的内容压栈保存,(SP)=(SP)+1x0dx0aPOPB;堆栈内保存的累加器A的内容弹出到B寄存器中,(SP)=(SP)-1x0dx0ax0dx0a使用PUSH、POP指令使用堆栈,要注意进出栈的匹配,否则将引起不可预期的后果。

❽ 单片机中堆栈指针SP可不可以访问程序存储器或者提供程序存储器的地址

i. 堆栈指针SP是不可以访问程序存储器的。SP是51系列单片机的特殊功能寄存器之一,字节地址是07H,其内容始终是当前栈顶元素的地址。
ii. 程序存储器(内外)的地址最大可从0000H~FFFFH,是固定的,有些地址甚至是特殊地址,不存在其它给程序存储器提供地址的说法。调用子程序时(或响应中断时)会有程序地址指针PC自动入栈,子程序(或中断)返回时会有自动出栈。所以笼统地说也仅是PC与SP之间内容的暂时“缓存”(当然,这种说法是不正确的。)。

❾ 51系列单片机上电复位后堆栈指针sp的初始值为多少最大容量是多少

答:51系列单片机上电复位后堆栈指针SP的初始值为07H,即SP=07H。堆栈区最大容量是120字节,即08H~7FH全为堆栈区。可事实上没有这么用的,也不可能用这么多,内部RAM主要用于存放程序运行中的变量。

❿ 单片机里sp是什么意思啊

单片机里sp是堆栈指针。

堆栈指针SP英文全称为stack pointer,是单片机控制器的组成部件之一,与时控制逻辑电路、指令寄存器译码器、地址指针DPTR、程序计数器等部件共同组成CPU的神经中枢。堆栈指针在单片机里的作用是随时跟踪栈顶地址,以便存取单片机的数据。

(10)单片机堆栈指针sp扩展阅读:

堆栈指针SP存取单片机数据原则是“先进后出,后进先出”。入栈递增的堆栈通常叫向上生长型的堆栈,反之就是向下生长型的堆栈,这就是通常说的“先进后出,后进先出”。

在堆栈中保存数据叫入栈,从堆栈中读取数据叫出栈。堆栈保存数据的特点是入栈和出栈是倒序的,最先入栈的数据要到最后才能出栈,而最后入栈的数据最先出栈,出栈就是递减,反之亦然。

设置栈时,大小要保证栈不会下溢出到数据空间或程序空间,CPU在运行程序时,会自动的使用堆栈,所以堆栈指针SP就须在调用C程序前设定。

阅读全文

与单片机堆栈指针sp相关的资料

热点内容
弗洛伊德算法c 浏览:6
udp命令字 浏览:659
app服务端java源码 浏览:798
电脑用文件夹玩大型游戏 浏览:254
安卓耳塞失灵怎么办 浏览:765
华三交换机保存命令 浏览:605
命令方块怎么调键盘 浏览:841
不把密码存在服务器上怎么办 浏览:398
怎么让指令方块的命令消失 浏览:543
用单片机做plc 浏览:404
云服务器进入子目录命令 浏览:795
服务器机柜如何配电 浏览:578
怎么删除iphone资源库里的app 浏览:940
pdf鱼 浏览:648
单片机pcf8591什么作用 浏览:805
sql命令学院 浏览:283
加密软件在电脑那个盘 浏览:988
android获取外部存储 浏览:573
怎么查自己家的服务器地址 浏览:858
编程c语言工作好不好 浏览:569