栈与寄存器的关系

来源:百度知道 编辑:UC知道 时间:2024/06/30 23:09:25
什么是栈:栈是线程独有的,保存其运行状态和局部自动变量的。栈在线程开始的时候初始化,每个线程的栈互相独立。每个函数都有自己的栈,栈被用来在函数之间传递参数。操作系统在切换线程的时候会自动的切换栈,就是切换SS/ESP寄存器。栈空间不需要在高级语言里面显式的分配和释放。
文章出处:http://www.diybl.com/course/3_program/c++/cppjs/20081012/150364.html
请问这里切换SS/ESP寄存器是什么意思?

ss:stack segment(段寄存器)
ESP:栈顶指针寄存器
EBP:栈底指针寄存器。

学过汇编语言就知道了,寄存器是CPU的组成部分。他们告诉CPU线程的栈在内存的什么地方,也就是地址。

数据结构(栈) -> 操作系统(线程)