单片机堆栈是什么?它的原理和作用又是什么?
什么是 单片机堆栈?
在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循顺序存取和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。
它的作用
子程序调用和中断服务时CPU自动将当前PC值压栈保存,返回时自动将PC值弹栈。保护现场/恢复现场数据传输单片机堆栈原理:
堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。
堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。
堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。
跟电师傅学单片机(19):单片机控制转移指令图文讲解3
一:绝对调用指令
绝对调用指令表
在实际单片机程序编程中,有时需要在主程序里面引用另外一段程序,引用的程序一般称为子程序,子程序可以多次反复调用,用起来很方便,还减少了编程程序的长度。
比如,要用到一个延时程序。怎么用呢?就是要把延时程序存放到程序存储器ROM单元中,只要知道存放的地址,用这个指令ALL addr11就可转去运行这个延时程序,运行完后还能返回。
addr11:调用程序的范围:2的11次方=2K
ALL addr11绝对调用指令最大的特点:调用了还能回来。
前面讲的有条件和无条件指令是:转走了就不用回来了。
但是它们类似的地方: 都是转移指令。
ALL addr11指令功能:
子程序短调用指令。是主程序调用子程序,调用子程序的范围是2KB。
PC:是单片机程序计数器,程序从哪里执行,完全由PC里的内容决定,始终是指定下一条将要执行指令的地址(是16位地址),单片机系统上电或复位时,PC的初始值为0000H。
SP:是51单片机堆栈指针,是一个专用的8位寄存器,系统复位后,SP初始化为07H,使得堆栈指针实际上是由08H单元开始。堆栈用于存储子程序调用、中断程序调用时程序返回的地址,或者用来临时保存某一寄存器的值。
二:长调用指令
长调用指令表
addr16:调用程序的范围:2的16次方=64K
ALL addr16指令功能:
子程序长调用指令,也称为远程调用指令。是主程序调用子程序,调用子程序的范围是64KB。
三:返回指(2条)
返回指令表
RET指令功能:
是子程序返回指令。是使子程序返回主程序。RET返回指令要与调用指令成对出现,缺一不可,否则会出现错误。
RET返回指令使用时应放在子程序的末尾,该指令可从堆栈中取出断点地址,送回是单片机程序计数器PC,并从断点处开始继续执行程序,即是单片机程序计数器PC指向主程序调用该子程序指令的下一个地址。
RETI指令功能:
中断子程序返回指令,使中断子程序返回主程序。
RET指令和RETI指令共同点:
基本功能是相同的,都是使子程序返回主程序,使单片机程序计数器PC指向下一个地址的指令。
RET指令和RETI指令区别:
在执行RETI指令时,还将清除中断响应时所置位的优先级状态触发器,开放中断逻辑,使得已申请的较低级的中断源可以响应。
四:空操作指令
空操作指令表
NOP指令功能:
空操作指令,它不作任何操作,但要消耗一个机器周期的时间,一般用于单片机程序延时或等待。
到此为止,17条单片机控制转移类指令讲解完毕,谢谢阅读!欢迎留言讨论,共同提高!
相关问答
单片机SP是什么 意思?SP是堆栈指针,指向堆栈操作的单元地址,是8位计数器。SP是堆栈指针,指向堆栈操作的单元地址,是8位计数器。
51 单片机 的 sp是什么 ?51单片机的sp是堆栈指针因为单片机里sp是堆栈指针。堆栈指针SP英文全称为stackpointer,是单片机控制器的组成部件之一,与时控制逻辑电路、指令寄存器译码器...
单片机 RAM中, sp 的作用 是什么 ?SP指的是堆栈指针详细解释如下:堆栈是一种数据结构,和他相类似的有队列。如果对数据结构有这样的要求:先将数据放到该区内,先放的后出后放的先出。这...
什么是 堆栈?堆栈指针的 SP 的作用 是什么 ?8051 单片机 堆栈容量不超过多少字节?堆栈:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和...
单片机 题目,为什么选这个答案?在堆栈操作中,当进栈数据全部...[最佳回答]正确答案是:D.栈底单元地址减151单片机sp是向上增长型的,所以在有进栈数据将从栈底单元地址(sp先自加一)开始存放---即压栈在堆栈的时候,sp要先自加...
单片机 pop 是什么 指令?POP指令的在单片机中执行是这样的,首先将SP中的值作为地址,并将此地址中的数送到POP指令后面的那个direct中,然后SP减1。单片机(Microcontrollers)是一种集...
关于 单片机 堆栈指针 sp 变化的问题1.如果(DPTR)=507BH,( SP )=32...[最佳回答]为什么不是(SP)=4FH?应该是4FH.问题二:那50H岂不是没利用到?50H是不用的.复位后,SP=07H.但是,07H就从来不用于堆栈.第一次压栈,是压入了08H单元...
sp 芯片中文名称?名称是堆栈指针sp芯片的中文名称是堆栈指针单片机里sp是堆栈指针。堆栈指针SP英文全称为stackpointer,是单片机控制器的组成部件之一,与时控制逻辑电路、指...
单片机sp 加括号和不加有区别吗?单片机SP加括号和不加是有区别的:1、加括号,表示是地址存储的值,比如:x=[SP],表示将栈顶的值赋值给变量x。2、不加括号,表示寄存器值,也就是地址,比如...单...
80c51系列 单片机 有21个特殊功能寄存器其中ip为什么tcon为什么, sp是什么 psw?ip是中断优先级寄存器,负责几个中断源的中断优先级设置,每个中断源只能设置成高或低2种;tcon是中断源控制寄存器,负责定时器和外部中断的开启和标志查询;S...