深入理解计算机

Posted 20135109

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解计算机相关的知识,希望对你有一定的参考价值。

一、计算机是如何工作的

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)利用实验楼的平台搭建

技术分享

 技术分享

自己实验截图:

 

以上是关于深入理解计算机的主要内容,如果未能解决你的问题,请参考以下文章

深入理解计算机系统之信息的存储和处理

求《深入理解计算机系统(第三版)》的pdf中文版

哪里可以买到<<深入理解计算机系统>>中文版

深入理解计算机

(6)Future深入理解

学习日记之《深入理解计算机系统》