堆栈的功能,操作过程和特点
答案:4 悬赏:60 手机版
解决时间 2021-04-06 22:33
- 提问者网友:捧腹剧
- 2021-04-05 22:58
堆栈的功能,操作过程和特点
最佳答案
- 五星知识达人网友:行路难
- 2021-04-05 23:59
堆栈的作用是保护现场和恢复现场。进栈指令是用于保护片内某个单元的数据;出栈指令是用于恢复片内某个单元的数据。
堆栈数据是“后进先出”的方式,由堆栈指针SP自动跟踪栈定地址。单片机堆栈编址采用向上生长方式,即栈底占用较低地址,栈顶占用较高地址。
堆栈指令采用直接寻址方式。
堆栈数据是“后进先出”的方式,由堆栈指针SP自动跟踪栈定地址。单片机堆栈编址采用向上生长方式,即栈底占用较低地址,栈顶占用较高地址。
堆栈指令采用直接寻址方式。
全部回答
- 1楼网友:怀裏藏嬌
- 2021-04-06 03:49
功能:
保护断点,保护现场。
操作过程:
PUSH出栈,POP入栈,存入/取出数据后,栈顶指针变化。
特点:
先进后出,后进先出。
同学,武汉理工的吧?微机原理吧?
保护断点,保护现场。
操作过程:
PUSH出栈,POP入栈,存入/取出数据后,栈顶指针变化。
特点:
先进后出,后进先出。
同学,武汉理工的吧?微机原理吧?
- 2楼网友:人间朝暮
- 2021-04-06 02:25
操作过程中按照后入后出原则
- 3楼网友:慢性怪人
- 2021-04-06 00:57
堆栈其实是数据结果中的两个概念 ,是存放数据的方式,堆:顺序随意;栈:后进先出(Last-In/First-Out)。要说用处,那就是在写代码的时候,有时数据存取肯定是要有规定的顺序的,这个是你自己规定的,然后按照你所写程序的用处的特点来用堆还是栈还是队列之类的顺序 追问: 程序设计时,为什么要对堆栈指针SP重新赋值? 回答: 这不是初始化嘛
堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。它的特点是按照先进后出的原则存取数据,这里的进与出是指进栈与出栈操作。
80C51片内RAM的部分单元可以用做堆栈。有一个8位的堆栈指针寄存器SP,专用于指出当前堆栈顶部是片内RAM的哪一个单元。80C51单片机系统复位后SP的初值为07H,也就是将从内部RAM的08H单元开始堆放信息。
但是,80C51系列的栈区不是固定的,只要通过软件改变SP寄存器的值便可更动栈区。为了避开工作寄存器区和位寻址区,SP的初值可置为2FH或更大的地址值。如果CPU在操作中要使用两组工作寄存器,如果不使用位变量,SP的初值至少应为0FH或更大的值;如果使用位变量,SP的初值至少应为2FH或更大的值;KeilC51编译器会自动计算SP的初始设定值,无需编程者关心。
堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。它的特点是按照先进后出的原则存取数据,这里的进与出是指进栈与出栈操作。
80C51片内RAM的部分单元可以用做堆栈。有一个8位的堆栈指针寄存器SP,专用于指出当前堆栈顶部是片内RAM的哪一个单元。80C51单片机系统复位后SP的初值为07H,也就是将从内部RAM的08H单元开始堆放信息。
但是,80C51系列的栈区不是固定的,只要通过软件改变SP寄存器的值便可更动栈区。为了避开工作寄存器区和位寻址区,SP的初值可置为2FH或更大的地址值。如果CPU在操作中要使用两组工作寄存器,如果不使用位变量,SP的初值至少应为0FH或更大的值;如果使用位变量,SP的初值至少应为2FH或更大的值;KeilC51编译器会自动计算SP的初始设定值,无需编程者关心。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯