一、计算机是如何工作的
1、1 计算机的三个法宝
存储程序计算机、函数调用堆栈、中断机制。
堆栈是C语言程序运行时必须记录调用路径和参数的空间。(函数调用框架、传递参数、保存返回地址、提供局部变量空间)
1、2 深入理解函数堆栈
(1)push栈顶减少4个字节
pop栈顶增加4个字节
ebp在C语言中用作记录当前函数调用基址
(2)其他关键寄存器
(3)函数堆栈框架
1、3 参数传递与局部变量
(1) 生成反汇编代码
(2)分析语句示例
sub &0x18,%esp在堆栈中预留出空间存储变量
二、借助Linux内核部分源代码模拟存储程序计算机工作模型及时钟中断
2、1 mykernel实验背后涉及的思想
一个 程序有一个自己的执行流,如何切换到另一个程序?
由CPU和内核代码共同实现了保护现场和恢复现场,当中断信号发生,cpu把当前信号的esp、ebp压到内核堆栈中去,把eip指向中断处理程序的入口。
2、2 利用mykernel实验模拟计算机硬件平台
(1)利用实验楼的平台搭建
自己实验截图:
原文:http://www.cnblogs.com/gyt0520/p/5243381.html