《Linux内核分析》 之 计算机是如何工作的
2016-02-28 16:22
295 查看
【朱国庆 原创作品 转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000】
《Linux内核分析》 之 计算机是如何工作的
第一讲 冯 诺依曼体系结构
1.冯 诺依曼体系结构是指具有存储程序的计算机系统
1.硬件:CPU与内存通过主线连接;CPU上有一块寄存器叫做IP,该寄存器相当于指针,总是指向内存的代码段;CPU总是执行IP指向的指令然后IP自加一
2.软件(计算机如何识别指令):通过ABI(程序与计算机的接口界面)
2.大多数指令可以直接访问内存
第二讲 X86汇编基础
X86寄存器详解(以64位为例)
2.CPU实际取指令的时候通过cs:eip来描述
3.常见的寻址方式
1.寄存器寻址(操作的都是寄存器):将eax的值直接赋值给edx;
2.立即数寻址:将十六进制的数值123(这个立即数)直接放到edx中(和内存也没有关系);
3.直接寻址:将0x123这个地址所指向的内存数据放到寄存器edx中;
4.间接寻址:将ebx的值作为一个内存地址,这个地址所存储的数据放到edx中;
5.变址寻址:与间接寻址类似,是把ebx的值加上4作为地址
4.几条重要指令
%ebp是栈底指针;%esp是栈顶指针。函数的堆栈就由这两个指针划定。
5.练习二
【分析】
1.函数应该如下:
int g(int x)
{
return x+8;
}
int main(void)
{
return g(x)-8;
}
第三讲 汇编一个简单的C语言程序(实验)
实验在自己的电脑上做的过程如下:
堆栈变化过程如下图:
《Linux内核分析》 之 计算机是如何工作的
第一讲 冯 诺依曼体系结构
1.冯 诺依曼体系结构是指具有存储程序的计算机系统
1.硬件:CPU与内存通过主线连接;CPU上有一块寄存器叫做IP,该寄存器相当于指针,总是指向内存的代码段;CPU总是执行IP指向的指令然后IP自加一
2.软件(计算机如何识别指令):通过ABI(程序与计算机的接口界面)
2.大多数指令可以直接访问内存
第二讲 X86汇编基础
X86寄存器详解(以64位为例)
2.CPU实际取指令的时候通过cs:eip来描述
3.常见的寻址方式
1.寄存器寻址(操作的都是寄存器):将eax的值直接赋值给edx;
2.立即数寻址:将十六进制的数值123(这个立即数)直接放到edx中(和内存也没有关系);
3.直接寻址:将0x123这个地址所指向的内存数据放到寄存器edx中;
4.间接寻址:将ebx的值作为一个内存地址,这个地址所存储的数据放到edx中;
5.变址寻址:与间接寻址类似,是把ebx的值加上4作为地址
4.几条重要指令
%ebp是栈底指针;%esp是栈顶指针。函数的堆栈就由这两个指针划定。
5.练习二
【分析】
1.函数应该如下:
int g(int x)
{
return x+8;
}
int main(void)
{
return g(x)-8;
}
第三讲 汇编一个简单的C语言程序(实验)
实验在自己的电脑上做的过程如下:
堆栈变化过程如下图:
相关文章推荐
- 数据结构学习笔记1-概述
- Linux内核分析——计算机是如何工作的
- Nginx 的 TCP 负载均衡介绍
- https白名单设置
- LINUX内核分析第一周学习总结——计算机是如何工作的
- 006_Http之路径
- 网络流(最大流) HDU 1565 方格取数(1) HDU 1569 方格取数(2)
- TCP 三次握手理解和过程
- HTTP服务七层架构技术探讨
- 数据结构习题答案--线性表
- 数据结构习题--线性表
- 《Linux内核分析》 第一节 计算机是如何工作的
- 数据结构总结(5)
- 细说Http协议
- 细说Http协议
- 细说Http协议
- IOS Http断点续传浅析
- Linux内核分析第一周-通过分析汇编代码理解计算机是如何工作的
- 文本分类算法之-LMS神经网络算法的介绍
- Linux网络配置 DNS配置重启失败