linux内核分析第一周

计算机是如何工作的

  • 冯·诺依曼理论的要点是:

    数字计算机的数制采用二进制;计算机应该按照程序顺序执行。
  • 冯·诺依曼体系结构

    根据冯·诺依曼体系结构构成的计算机,必须具有如下功能:把需要的程序和数据送至计算机中。必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。能够按照要求将处理结果输出给用户。

    为了完成上述的功能,计算机必须具备五大基本组成部件,包括:输人数据和程序的输入设备、记忆程序和数据的存储器、完成数据加工处理的运算器、控制程序执行的控制器、输出处理结果的输出设备。

通过汇编一个简单的C程序,分析汇编代码

  • 实验截图

linux内核分析第一周

linux内核分析第一周

  • 汇编代码

    g:
    pushl   %ebp
    movl    %esp, %ebp
    movl    8(%ebp), %eax
    addl    $1, %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    $12, (%esp)
    call    f
    addl    $2, %eax
    leave
    ret
  • 堆栈变化截图

linux内核分析第一周

linux内核分析第一周

linux内核分析第一周

linux内核分析第一周

linux内核分析第一周

linux内核分析第一周

linux内核分析第一周

linux内核分析第一周

linux内核分析第一周

linux内核分析第一周

linux内核分析第一周

linux内核分析第一周

linux内核分析第一周

总结

计算机通过堆栈的变化存储和处理代码段的数据,实现代码段指令的功能,从而进一步实现计算机整体的功能。冯·诺依曼体系结构的计算机的软件和硬件方面存在一定的“间隔”,同一个操作需要不同的操作码来区别不同的意义,这么在一定程度上限制了计算机的发展。

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

更多相关文章
  • Linux内核分析第一周——计算机是如何工作的
    Linux内核分析第一周——计算机是如何工作的 李雪琦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 冯诺依曼体系结构结构,就是存储程序计算机. 1.数字计算机的数制采用 ...
  • linux内核分析第一周学习笔记
    linux内核分析第一周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.1冯诺依曼体系结构:即具有存储程序的计算机体系 ...
  • Linux内核分析第一周学习博客---通过反汇编方式学习计算机工作过程
    Linux内核分析第一周学习博客 通过反汇编方式学习计算机工作过程 总结: 通过这次对一个简单C程序的反汇编学习,我了解到计算机在实际工作工程中要涉及大量的跳转指针操作.计算机通常是顺序执行一条一条的指令,如果有必要就通过寄存器跳转到特定的地址,再执行,然后通过一系列机制返回原有的地址,继续顺序执行 ...
  • Linux内核分析——第一周学习笔记20135308
    第一周 计算机是如何工作的 第一节 存储程序计算机工作模型 1.冯·诺依曼结构模型:冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构.程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同. 2.CPU可以抽象成一个for循 ...
  • 魏昊卿——Linux内核分析第一周作业:从分析简单的汇编代码了解计算机是怎样工作的
    } 实验过程中相应截图如下: 三.过程详解下面对汇编代码的工作过程中堆栈的变化进行详细地分析:一般从main函数开始分析程序,假设开始时堆栈为空,并从高地址开始一词向低地址编号为0,1,2……每移动一个编号即代表ebp或esp加4或者减418行:将ebp的值(0)压栈,ebp->0,esp-& ...
  • Linux内核分析第一周学习总结:计算机是如何工作的
    韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.冯诺依曼体系结构:存储程序计算机 1. 从硬件角度 总线 CPU ============ 内存 - CPU上的 ...
  • Linux内核分析第一周学习报告
    第一周:计算机是如何工作的 姓名:王玮怡  学号:20135116 第一节 存储程序计算机工作模型(冯诺依曼体系结构) IP指向的内存地址,取指令执行,完成后,IP值自加一,取下一条指令再执行. API:程序员与计算机的借口界面. ABI:二进制(指令编码)接口. 第二节 X86汇编基础 一.X86 ...
  • linux内核分析第二周
    网易云课堂linux内核分析第二周 20135103                王海宁 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000  操作系统的核心功能就是:进程调度和中断机制,通过与硬件的配合实 ...
一周排行
  • JSP笔记自定义标签库taglib
    http://notes.javaee.jsp.com/taglib.<tag> ...
  •     条件选择语句(IF,CASE).循环语句(LOOP.WHILE和FOR)和顺序控制语句(GOTO,NULL). 1.IF条件选择语句1.1 简单条件判断DECLARE  v_sal NUMBER(6,2); ...
  • zabbix从入门到精通之—zabbix初体验
     zabbix从入门到精通之—zabbix初体验           进入新公司将近2个月 ...
  • 证书这个东西,我相信大家都知道,相信大家用过网上的支付宝,或者其他的,都应该知道.我们会给我们的系统安装系统的证书,那么这个证书代表什么呢?其实大家也可以查询一下,我们自己电脑上的证书,可以说证书这项技术还是比较安全 ...
  • bonecp相关包bonecp-0.7.0.jar bonecp-provider-0.7.0.jar bonecp-spring-0.7.0.jar google-collections-1.0.jar slf4j ...
  • java不允许多重继承,也就是说一个子类只能有一个父类, Son extends FatherA,FatherB 是错误的 为了弥补这点不足,java允许实现多个接口, 接口就是给出一些没有内容的方法,类似于C++中 ...
  • LVS-NAT+ipvsadm实现RHEL5.7上的服务集群
     使用LVS-NAT+ipvsadm实现RHEL 5.7上的服务集群示意图如下:说明:本文 ...
  • http://os.51cto.com/art/201003/186826.htm 上一篇Linux shell脚本基础学习中我们讲了Linux shell脚本中控制流程的if .select.case ,这里接着介 ...
  • IT人就是一块硬盘
    IT人就是一块硬盘一睡不着,就会用手机看些电子书,然后可能昏昏入睡也可能越看越精神,这究竟 ...
  • 前天正在跟前端的同事调试功能.服务器开好,模拟的玩家登录好,就在倒计时.这时突然运营的同事跑过来说要统计几个服务器玩家的一些情况,也就是需要从几个服的数据库导出部分玩家的数据.好吧,我看了一下时间,7.心想, ...