存储程序计算机:是所有计算机基础的框架
堆栈:计算机中基础的部分,在计算机只有机器语言、汇编语言时,就有了堆栈。堆栈机制是高级语言可以运行的基础。
计算机“三宝”:存储程序计算机、函数调用堆栈和中断机制。
♦ C语言编译器对堆栈的使用有一套的规则,不同的系统中,编译C代码会有不同的汇编代码。
♦ 了解堆栈存在的目的和编译器对堆栈使用的规则是理解操作系统一些关键性代码的基础。
pop:从高地址向低地址
push:从低地址向高地址
• 顺序执行:总是指向地址连续的下一条指令 • 跳转/分支:执行这样的指令的时候,cs : eip的值会 根据程序需要被修改 • call:将当前cs : eip的值压入栈顶,cs : eip指向被 调用函数的入口地址 • ret:从栈顶弹出原来保存在这里的cs : eip的值,放 入cs : eip中
中断机制是如何工作的?
call指令: 1)将eip中下一条指令的地址A保存在栈顶 2)设置eip指向被调用程序代码开始处
2. 进入xxx
3. 退出xxx
当一个中断信号发生时,CPU把当前的eip,esp,ebp压到内核堆栈中去,并把eip指向中断处理程序的入口。
原文:http://www.cnblogs.com/bonjourvivi/p/5231689.html