zoukankan      html  css  js  c++  java
  • linux内核分析 第一周

    计算机是如何工作的

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

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

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

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

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

    • 实验截图

    • 汇编代码

        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内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

  • 相关阅读:
    JS字符串之字符方法
    JS数组之归并方法
    JS数组之迭代方法
    JS数组之位置方法
    JS数组之操作方法
    【Vue-入门笔记-3】
    【Vue-入门笔记-2】
    阿里靠什么武功秘籍渡过“双十一“的天量冲击
    CC++ --- 线性表-学生成绩管理系统
    TortoiseSVN 使用教程
  • 原文地址:https://www.cnblogs.com/whyfarrell/p/5223682.html
Copyright © 2011-2022 走看看