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  操作系统的核心功能就是:进程调度和中断机制,通过与硬件的配合实 ...
一周排行
  • 1.rpm bundel包下载到 /usr/local/src中:[[email protected]]# lsmysql-5.7..el6.x86_64.rpm-bundle.tar2解压缩bundle包 ...
  • 利用netcat和dd做远程备份在源主机上执行此命令备份/dev/hda:dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234在目的主机上执行此 ...
  • using关键字,不知道的人可能对它不屑一顾,不就是用来引用命名空间吗?可是真正对using深入了解的人,你就真的不会小瞧它了.下面就听我给你一一道来using的用途和使用技巧. using关键字微软MSDN上解释总 ...
  •  悲剧!一上来就说悲剧,原因有二:悲剧之一,打车去笔试,结果题目都没见着:悲剧之二,由悲剧之一产生或想到的——难道全民IT时代到来了?学计算机就那么有前途?亦或很多人在IT行业成为悲剧……本文纯属个人想法,您也可以发 ...
  • 什么是Silverlight ToolkitSilverlight Toolkit是由微软提供的一系列的Silverlight控件.组件和工具的集合,不仅免费且完全开源,当前发布的版本中包括12个控件和6套非常酷的主 ...
  • 先上一张效果图:  上代码,看了代码什么都明白 CoverFlow从Gallery继承过来packagecom.coverflow; 002  003importandroid.content.Context; 00 ...
  • upstream backend {      server 127.0.0.000 max_fails=3 fail_timeout=300s;  server 10.10.5.000 max_fa ...
  • 1:卸载fcitx   sudo apt-get --purge fcitx*2:清理系统内的无用的软件包   sudo apt-get --purge autoremove3:到搜狗官网下载搜狗拼音输入法,选择你系 ...
  • 刚刚接到朋友电话,说华为成都天府软件 那里一名华为员工从B7楼跳下来了!据说带着工号牌,但不清楚是不是华为的正式员工.跳楼原因:据说是炒股巨亏跳楼自杀 来自其他方面的消息--成都华为一员工从四楼跳楼自杀 当场身亡中午 ...
  • Unity3D核心类型一览
    Unity3D核心类型一览 本文记录了Unity3D的最基本的核心类型.包括Object. ...