Linux内核分析》第一周.计算机是如何工作的?
                                                                       20135204 郝智宇 
一、存储程序计算机工作模型
1.      冯诺依曼体系结构:
数字计算机的数制采用二进制;计算机应该按照程序顺序执行。
内存保存指令和数据,CPU负责解释和执行这些指令。
2.    API:
程序员与计算机的接口界面。
3.    EIP:
CALL  RET  IMP
 
二、X86汇编基础
1.      X86CPU的寄存器
E开头32位,R开头64位。
  堆栈是计算机中非常基础性的东西。
2.      代码段、堆栈段、数据段、附加段
3.      CPU在实际取指令时根据cs:eip来准确定位一个指令。
4.      32位和64位核心机制上差别不大。
5.      汇编指令:
Movl,pushl,popl,call,ret,leave…
AT&T汇编格式与Intel格式略有不同。Linux内核使用的是AT&T汇编格式。
Pushl:栈的位置在增长;Popl:栈的位置在收缩。
Esp栈顶;ebp栈底。
Eip不能直接被修改,只能call,ret.
 
三、汇编一个简单的C程序分析其汇编指令执行过程(实验楼环境下操作)

1.  新建一段代码,粘贴题目所给的代码段并进行修改之后,保存:
 





2.  以下为这段代码的汇编指令:


3.  删除掉以点(.)开头的指令之后,得到干净完整的汇编指令如下:
g:
pushl   %ebp
movl    %esp, %ebp
movl    8(%ebp), %eax
addl    $5, %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    $10, (%esp)
call    f
addl    $1, %eax
leave
ret

4.分析汇编代码的工作过程中堆栈的变化如下:
(接上)
四.对“计算机是如何工作的”的理解:

计算机的执行指令都是机器语言,通过汇编语言和高级语言编出来的程序通过计算机内的编译程序,将程序编译成计算机可执行的文件来进行工作,交换数据。
计算机在实际工作工程中要涉及大量的跳转指针操作。计算机通常是顺序执行一条一条的指令,如果有必要就通过寄存器跳转到特定的地址,再执行,然后通过
一系列机制返回原有的地址,继续顺序执行。计算机里,内存保存指令和数据,CPU负责解释和执行这些指令。 郝智宇 无转载 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

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

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

    LINUX内核分析第一周学习总结——计算机是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/ ...

  2. Linux内核分析第一周学习博客 --- 通过反汇编方式学习计算机工作过程

    Linux内核分析第一周学习博客 通过反汇编方式学习计算机工作过程 总结: 通过这次对一个简单C程序的反汇编学习,我了解到计算机在实际工作工程中要涉及大量的跳转指针操作.计算机通常是顺序执行一条一条的 ...

  3. linux内核分析第一周学习笔记

    linux内核分析第一周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  4. LINUX内核分析第二周学习总结——操作系统是如何工作的

    LINUX内核分析第二周学习总结——操作系统是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course ...

  5. Linux内核分析第一周学习总结:计算机是如何工作的?

    韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.冯诺依曼体系 ...

  6. 20135320赵瀚青LINUX内核分析第一周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.概述 第一周的学习内容主 ...

  7. Linux内核分析——第一周学习笔记20135308

    第一周 计算机是如何工作的 第一节 存储程序计算机工作模型 1.冯·诺依曼结构模型:冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构.程序指令存储地址和数据存储 ...

  8. Linux内核分析——第一周学习笔记

    20135313吴子怡.北京电子科技学院 chapter 1 知识点梳理 第一节 存储程序计算机工作模型 1.冯诺依曼体系结构:即具有存储程序的计算机体系结构.目前大多数拥有计算和存储功能的设备(智能 ...

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

    北京电子科技学院 20135310陈巧然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-100002 ...

随机推荐

  1. 2018.08.31 19:41 自学go语言

    有的人是从最基础的开始学,而我却是从最简单开始学,学着调试,学着编程,其实我也是编程小白,好多的不懂,我不明白很多都可以用云完成了,为什么还要继续自己编程,不明白,但是有需求吧,有需求是件好事情,说明 ...

  2. sql !=与null

    在写SQL 条件语句是经常用到 不等于‘<>’的筛选条件,此时要注意此条件会将字段为null的数据也当做满足不等于的条件而将数据筛选掉. 例:表A A1  B1 1 0 2 1 3 NUL ...

  3. 2.Linux环境下配置Solr4.10.3

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.准备阶段 操作系统:CentOS 6.8 安装包:/home/test solr-4.10.3.tgz.t ...

  4. linux 的常用命令---------第六阶段

    磁盘管理 IDE 硬盘 (了解)硬盘接口 :   SATA 硬盘 SCSI 硬盘 SAS 硬盘 分区付的认识:(笔试题) MBR :硬盘主引导记录,共512字节,由三部分组成 主引导程序 :占446个 ...

  5. Kubernetes1.91(K8s)安装部署过程(三)--创建高可用etcd集群

    这里的etcd集群复用我们测试的3个节点,3个node都要安装并启动,注意修改配置文件 1.TLS认证文件分发:etcd集群认证用,除了本机有,分发到其他node节点 scp ca.pem kuber ...

  6. [转]VS2013+简单稀疏光束调整库SSBA配置(64位编译)

    有关SSBA库的资源比较少,我是在Github上搜索下载的,具体的GitHub官方下载地址为:SSBA 下载后在SSBA解压文件夹下新建文件夹build. 打开cmake gui,在source co ...

  7. WorldWind源码剖析系列:代理助手类ProxyHelper

    代理助手类ProxyHelper通过平台调用的互操作技术封送了若干Win32结构体和函数.该类类图如下. 提供的主要处理方法基本上都是静态函数,简要描述如下: 内嵌类型WINHTTP_AUTOPROX ...

  8. 解决php编译报错configure: error: mcrypt.h not found. Please reinstall libmcrypt.

    yum install -y epel-releaseyum install -y libmcrypt-devel

  9. tomcat-在eclipse中配置tomcat容器的内存

    eclipse下的tomcat内存设置大小 在eclipse中设置: 设置步骤如下: 1.点击eclipse上的debug图标旁边的下拉箭头 2.然后选择Run Configurations, 3.系 ...

  10. 【小程序】本地资源图片无法通过 WXSS 获取

    小程序升级更改: 本地资源图片无法通过 WXSS 获取,可以使用网络图片,或者 base64,或者使用<image/>标签.请参考文档: https://mp.weixin.qq.com/ ...