linux内核分析--计算机是如何工作的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux内核分析--计算机是如何工作的相关的知识,希望对你有一定的参考价值。

知识点:

冯诺依曼体系结构结构,它最核心的思想是存储程序计算机。

cpu通过总线与内存连接,依靠ip指针依次从内存中取出一条指令执行。

API:程序员与计算机的接口界面。

ABI:程序与CPU的接口界面。

寄存器、寻址方式和各类指令在学习《深入理解计算机》和《汇编》时已做了详细了解,不再赘述。

 

实验:

截图入下:

 

技术分享

技术分享

原代码为:

int g(int x) { return x+3; }

int f(int x) { return g(x); } a int main(void) { return f(8)+1; }

汇编代码为:

g: pushl %ebp movl %esp, %ebp movl 8(%ebp), %eax addl $3, %eax popl %ebp ret f: pushl %ebp movl %esp, %ebp subl $4, %esp movl 8(%ebp), %eax movl %eax, (%esp) call g leave ret main: pushl %ebp movl %esp, %ebp subl $4, %esp movl $8, (%esp) call f addl $1, %eax leave ret

代码非常简单,只要记住

pushl %ebp 等价于 subl $4,%esp movl %ebp,(%esp)

leave 等价于 movl %ebp,%esp popl %ebp

popl %ebp 等价于 movl (%esp),%ebp addl $4

call是将返回地址也就是当前eip的值压入栈顶,然后跳转到函数的起始地址

ret弹出返回地址到eip继续执行下面的指令

 

计算机的工作原理:

就是按照程序的编排,cpu从内存中一个一个取出指令和数据并执行。

 

作者:黄卫

原创作品转载请注明出处

《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

以上是关于linux内核分析--计算机是如何工作的的主要内容,如果未能解决你的问题,请参考以下文章

LINUX内核分析第一周学习总结——计算机是如何工作的

《Linux内核分析》第一周学习小结 计算机是如何工作的?

linux内核分析--计算机是如何工作的

《Linux内核分析》第一周笔记 计算机是如何工作的

Linux内核分析第一周-通过分析汇编代码理解计算机是如何工作的

Linux内核分析第一周——计算机是如何工作的