栈帧中的一些概念 1
前不久想了解一下python中协程的概念, 看了greenlet源码. 看到slp_switch的时候, 里面是汇编语言, 搜索之后好像是需要了解栈帧的原理.
基础太差, 看了好多文章, 才明白了一点点.
- 一个栈帧是一个被调用函数的一段内存空间
- ebp指向栈帧的底部, esp指向顶部, 即当前指向的内存地址.
- 入栈操作: push eax; 等价于 esp=esp-4,eax->[esp]
- 出栈操作:pop eax; 等价于 [esp]->eax,esp=esp+4
一些文章: