发布网友 发布时间:2023-07-05 08:35
共1个回答
热心网友 时间:2024-11-29 06:46
堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。
在采用段式内存管理方式进行程序内存分配的架构中,堆栈段用来存放局部变量和函数返回地址。堆栈段是在程序运行时动态分配使用,只需要通过栈顶指针即可访问。大多数CPU中都有专用寄存器可以被用来存放栈顶地址。
理论上,最小的栈可能是一个仅能保存函数调用(function call)地址的结构,以致被调用的函数能根据该地址返回(return)到原函数里。除此功能以外,开发者也可以将栈另作他用。
扩展资料
堆栈中的物体具有一个特性:第一个放入堆栈中的物体总是被最后拿出来, 这个特性通常称为先进后出 (FILO—First-In/Last-Out)。 堆栈中定义了一些操作, 两个最重要的是PUSH和POP。
PUSH(入栈)操作:堆栈指针(SP)加1,然后在堆栈的顶部加入一 个元素。
POP(出栈)操作相反,出栈则先将SP所指示的内部ram单元中内容送入直接地址寻址的单元中(目的位置),然后再将堆栈指针(SP)减1。这两种操作实现了数据项的插入和删除。
参考资料来源:百度百科-堆栈
参考资料来源:百度百科-堆栈段