栈是一个特殊的存储区域,主要用来临时存储数据和地址。
在使用分段内存管理进行程序内存分配的架构中,堆栈段用于存储局部变量和函数返回地址。栈段是在程序运行时动态分配和使用的,只能通过栈顶指针访问。大多数CPU都有一个特殊的寄存器,可以用来存储栈顶地址。
理论上,最小的栈可以是一个只能存储函数调用地址的结构体,这样被调用的函数就可以根据该地址返回到原来的函数。除了此功能之外,开发人员还可以将堆栈用于其他目的。
扩展信息
对象上的函数堆栈里有这个。您放入堆栈的第一个对象始终是最后一个将其取出的对象。此功能通常称为FILO-先进/后出。栈中定义了多种操作,其中最重要的两个是PUSH和POP。
PUSH操作:将栈指针(SP)加1,然后向栈顶添加一个元素。
POP操作,出栈时,将SP指向的内部RAM单元的内容传送到先由其直接地址(目标位置)寻址的单元,然后由堆栈指针寻址(SP)并从中减去1。这两个操作实现了数据项的插入和删除。
参考来源:-Stack
参考来源:-StackSegment