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

时间: 2024-11-05 13:41:43

linux内核分析--计算机是如何工作的的相关文章

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

实验楼实验截图:

Linux及安全 内核分析计算机是如何工作的

Linux及安全 内核分析计算机是如何工作的 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验内容: 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的 二.实验过程: 在Linux模拟器上,打开一个shell命令运行器,在Code文件夹中建立一个c文件,用vi命令运行,打开main.c文件,输入一个简单的c程序,用gcc -S -o main.s main.c -m

Linux内核分析——操作系统是如何工作的

姓名:王晨光 学号:20133232 王晨光+原创作品转载请注明出处+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.进程的启动和切换源代码及分析 typedef struct PCB用于表示定义了一个进程,定义了进程管理相关的数据结构.同时也设置了用于保存EIP和ESP的数据类型. 下列代码为mymain.c部分代码: void __init my_start_kernel(void) { int pid

Linux内核分析--操作系统是如何工作的

“平安的祝福 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 一.初始化进程 操作系统内核启动入口函数是void __init my_start_kernel(void): 在这里简单定义进程的的两个cpu状态: struct Thread {    unsigned long        ip; //表示eip指令    unsigned long        sp;/

linux内核分析(网课期末&amp;地面课期中)

堆栈变化过程: Linux内核分析——计算机是如何工作的 计算机是如何工作的?(总结)——三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能: enter pushl %ebp movl %esp,%ebp leave movl %ebp,%esp popl %ebp 函数参数传递机制和局部变量存储 中断,多道程序操作系统的基点,

20135201李辰希《Linux内核分析》第一周 计算机是如何工作的?

计算机是如何工作的 1冯诺依曼体系结构:即具有存储程序的计算机体系结构 目前大多数拥有计算和存储功能的设备(智能手机.平板.计算机等)其核心构造均为冯诺依曼体系结构 从硬件来看:CPU与内存通过主线连接,CPU上的IP(可能是16.32.64位)总指向内存的某一块区域:IP指向的CS(代码段)也在内存中:CPU总是执行IP指向的指令. 从软件来看:API(应用程序编程接口,与编程人员)与ABI(程序与CPU的借口界面) 是两个比较重要的软件接口 2. x86(32位)的寄存器中,低16位作为16

Linux内核分析作业(1)——计算机是如何工作得?

根据163MOOC学院中国科学技术大学孟宁孟老师课程所写得博客 作者:肖冲冲 原创作品请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一,计算机的工作过程 计算机的基本原理是存储程序和程序控制(冯﹒诺依曼体系),简单来说,我们需要先把需要进行操作的指令(程序)和数据先输入到计算机的存储设备中,然后计算机将严格执行需要执行的指令,包括从那个地址取数(或指令),进行什么操作(加减移位等),然后再送回到什

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

Linux内核分析第一周——计算机是如何工作的 李雪琦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 冯诺依曼体系结构结构,就是存储程序计算机. 1.数字计算机的数制采用二进制: 2.计算机通常是顺序执行一条一条的指令,如果有必要就通过寄存器跳转到特定的地址,再执行,然后通过一系列机制返回原有的地址,继续顺序执行. 实验部分:

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

<Linux内核分析>第一周.计算机是如何工作的? 20135204 郝智宇  一.存储程序计算机工作模型 1.      冯诺依曼体系结构: 数字计算机的数制采用二进制:计算机应该按照程序顺序执行. 内存保存指令和数据,CPU负责解释和执行这些指令. 2.    API: 程序员与计算机的接口界面. 3.    EIP: CALL  RET  IMP   二.X86汇编基础 1.      X86CPU的寄存器 E开头32位,R开头64位.   堆栈是计算机中非常基础性的东西. 2.