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  操作系统的核心功能就是:进程调度和中断机制,通过与硬件的配合实 ...
一周排行
  •    Antian365 Security Team(AST)普通交流群即日起解散,很多人问我为什么要解散,解散的原因有以下几个:(1)现在有关安全的群很多,但真正用于交流的很少,很多都是在里面灌水,很多都是在浪费时 ...
  • 1. 增加分享答题记录功能 2. 公制.英制马力实时换算 3. 支持 3D Touch 4. 背景颜色更加统一 5. 更新Support URL App Store
  •    之前一直都只会一些mysql简单的操作,对mysql的理解也不是很熟悉,找了很多mysql的基础书籍,也不是很理想,后来发现一本<mysql入门很简单>发现还不错,看了两遍,mysql基础的教程也不 ...
  • iptables中DNAT与SNAT的理解
    DNAT(Destination Network Address Translation, ...
  • SCCM系列之六部署操作系统中
    接上篇"SCCM系列之六部署操作系统(上)",在上一篇准备工作做好了开 ...
  • 前言   这几天学习了队列,于是尝试了一下Joseph Problem,然后一直有一个地方没有通过,终于经点拨后,通过了.对于队列的使用还是加深了印象.建议如果队列的练手可以去尝试解决这个问题. 正文 Joseph ...
  • StaticStaticTest.javapublicclass StaticTest {privatestaticinti =99;privatestaticint test(int j){return ++j;} ...
  • SQLServer基础一
    1. 关系数据库    网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在 ...
  • 前台几个linkbutton,共用一个事件,点击某一个linkbutton,哪一个变色.   LinkButton lkb = (LinkButton)sender;        lkb.Style.Add(&qu ...
  • Mac下使用Automator实现隐藏和显示
    本文使用Makdown编辑 通常系统中打开一个文件有好多种方法,编辑也是.例如你要打开Om ...