产品概述

单片机sp是什么 单片机堆栈是什么?它的原理和作用又是什么?

小编 2024-10-06 产品概述 23 0

单片机堆栈是什么?它的原理和作用又是什么?

什么是 单片机堆栈?

在片内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...

猜你喜欢