计算机如何工作

20135331 文艺+《Linux内核分析》mooc课程

在网易云课堂学习了第一堂Linux内核分析的课程 里面一共有9个小视频学习

什么是冯诺依曼体系结构

是研究计算机系统最基本的概念,存储程序计算机 (1)从硬件

(2)从程序员

CPU识别什么样的指令API ABI (接口) 汇编指令

X86汇编 16bit AX        32bit  EAX

BX                  EBX

CX                  ECX

DX                  EDX

EBP

ESP

ESI

寄存器

还有一些汇编指令 mov指令以及寻址方式 push call ret

计算机简单来说如何工作:  通过总线来连接CPU以及内存 在CPU中存储的指令将一一执行 将手动语言转化为机器语言 用汇编码来执行指令 因此 通过实验来以上指令的了解 实验中汇编码如下:

现在 来分析以上代码 在堆栈中的变化:

当执行一条指令的时候 esp%就会向下压一个4的自己 在执行完main函数然后调用f再调用g 最后再返回到main 指针变化都类似 注意到ret是返回到call的下一条指令  最终eax%寄存器的值为12

时间: 2024-10-24 21:17:32

计算机如何工作的相关文章

分析汇编代码理解计算机如何工作

周玉勇 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 把C代码反汇编成汇编代码,再来分析计算机如何工作 下面是C代码 C代码编译成汇编的代码 简化的汇编代码 1 g: 2 pushl %ebp 3 movl %esp, %ebp 4 movl 8(%ebp), %eax 5 addl $6, %eax 6 popl %ebp 7 ret 8 f: 9 pushl %ebp 10 mov

计算机毕业生工作经验心得_百度经验【转载】

今天在百度的程序员贴吧看到的一则文章,蛮有启发的,收藏一下 计算机毕业生工作经验心得_百度经验http://jingyan.baidu.com/article/3aed632e056ce470108091d6.html

计算机如何工作小解

计算机如何工作小解 “20135224陈实 + 自己博客园 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 汇编代码如下: 基本理解工作过程如下: 根据汇编语言:在g函数中,开头语句都是创建堆栈起始语pushl,movl分别对应下图(下右图eax值应该是算过main与F之后的esp值+5,这里只做函数顺序理解) 对应f与main开头语大同小异: 在进行到语句subl时候,ESP下移,将要保留的数值5放入

编程如何驱动计算机完成工作

1.计算机的工作原理 要想理解编程如何驱动计算机完成工作,就要理解计算机是如何工作的. 1.1 现代计算机的几个构成部件 中央处理单元(CPU,central processing unit),承担计算机绝大部分的运算和控制工作,负责处理程序. 随机存取内存(RAM,random access memory),存储程序和文件的工作区. 外围设备,如键盘.鼠标.触摸屏.监视器,提供人与计算机之间的交互. 1.2 CPU的日常工作 CPU从内存中获取并执行一条指令,然后再从内存中获取并执行下一条指令

理解计算机的工作方式——通过汇编一个简单的C程序并分析汇编代码

Author: 翁超平 Notice:原创作品转载请注明出处 See also:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000  本文通过汇编一个简单的C程序,并分析汇编代码,来理解计算机是如何工作的.整个过程都在实验楼上完成,感兴趣的读者可以通过上面给出的课程链接自行动手学习.以下是实验过程和结果. 一.操作步骤 1.首先在通过vim程序建立main.c文件.代码如下: 图1 2.使用如下命令将main.c编

Linux内核设计第一周学习总结 计算机如何工作

北京电子科技学院 20135310陈巧然 一.视频笔记 二.实验:汇编一个简单C程序,分析其汇编指令执行过程 利用实验楼实验环境 2.源代码main.c 3.生成的汇编代码main.s 三.汇编指令执行过程分析 四.总结理解 该部分内容在曾经的汇编基础课和信息安全系统设计基础课中反复学习过,是计算机工作原理的基础部分. 计算机可抽象理解为由CPU和内存两部分组成,内存中存有指令和数据,CPU解释执行指令.CPU中的IP寄存器指向内存中的某代码段(即指令),CPU执行完当前IP指向的指令后,IP寄

从一段代码的汇编看计算机的工作原理

朱宇轲 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 大家都知道,现在的计算机主要遵循的是所谓的“冯诺依曼框架”.那什么是冯诺依曼框架呢,其实就是计算机通过总线从内存中读取一条条的程序和数据,将它们存储在自己的寄存器中一条条地执行,如下图所示. 而今天,我们将通过汇编一个具体的C程序来探讨计算机工作的流程. 首先写下这么一段C程序: 1 //linux.c 2 int g(x)

从汇编看计算机的工作过程

本周学习了Linux内核分析第一课,老师通过讲解一个简单的c程序使我了解了计算机(特别是堆栈部分)工作过程. 下面通过一个简单的例子来分析一下: 下面是c程序: int g(int x) { return x + 6; } int f(int x) { return g(x); } int main(void) { return f(5) + 2; } 使用下面命令反汇编c程序得到汇编程序 gcc –S –o main.s main.c -m32 首先从main函数开始分析,可以发现每个函数中前

计算机的工作流程

电脑刚开机的时候,是怎么运行的? Post(加电自检),因为硬件不是智能的,所以必须要通过某种东西来完成: 这种东西就是程序,程序=指令+数据: 加载了程序,放在内存之后才可以执行: 程序又在哪里呢? 开机时,程序是放在外存的,例如:U盘,硬盘,软盘等- 那这么多盘,到底在哪里找呢? 通过ctrl + Alt + INS 查看boot,里面有N个启动选项,就是按照里面的顺序依次选择执行的,如果第一个有就选择第一个,否则下一个,只要找到一个即可. 比如:重装系统的时候,我们会把U盘放在第一位,然后