南大袁春风计算机系统基础(一)笔记

  • 一、计算机系统基本组成与基本功能
    • 冯.诺依曼结构计算机模型
    • 冯.诺依曼计算机结构的特点
    • 计算机的指令和数据
  • 二、程序开发和执行过程简介
    • 程序开发的发展过程
    • 典型程序转换处理过程
    • Hello程序的数据流动过程
    • 不同层次语言之间的等价转换

一、计算机系统基本组成与基本功能

​ 1946年,第1台通用电子计算机 ENIAC(Electronic Numerical Integrator And Computer电子数字积分计算机)诞生。

冯.诺依曼结构计算机模型

1.计算机包含五大部件:输入/输出设备,存储器,控制器,运算器。

2.各基本部件的功能是:

• 存储器不仅能存放数据,而且也能存放指令,形式上两者没有区别,但计算机应能区分数据还是指令;

• 控制器应能自动取出指令来执行;

• 运算器应能进行加/减/乘/除四种基本算术运算,并且也 能进行一些逻辑运算和附加运算;

• 操作人员可以通过输入设备、输出设备和主机进行通信;

3.内部以二进制表示指令和数据。每条指令由操作码和地址码两部分组成。操作码指出操作类型,地址码指出操作

数的地址。由一串指令组成程序。

4.采用“存储程序”工作方式。

冯.诺依曼计算机结构的特点

CPU:中央处理器;PC:程序计数器;MAR:存储器地址寄存器 ALU:算术逻辑部件;IR:指令寄存器;

MDR:存储器数据寄存器 GPRs:通用寄存器组(由若干通用寄存器组成,早期就是累加器)

计算机工作的步骤:

将数据和指令按序放在存储器的存储单元当中–>–>根据PC取指令–>将指令译码–>去操作数–>指令执行–>回写

结果–>修改PC的值–>执行下一条指令

计算机的指令和数据

  • 程序启动前,指令和数据都存放在存储器中,形式上没有差别, 都是0/1序列

  • 采用”存储程序“工作方式:

    • 程序由指令组成,程序被启动后,计算机能自动取出一条一条 指令执行,在执行过程中无需人的干预。
  • 指令执行过程中,指令和数据被从存储器取到CPU,存放在CPU 内的寄存器中,指令在IR中,数据在GPR中。

  • 指令中需给出的信息:

    • 操作性质(操作码)
    • 源操作数1 或/和 源操作数2 (立即数、寄存器编号、存储地址)
    • 目的操作数地址 (寄存器编号、存储地址)

总结: 计算机的基本部件及功能:

–运算器(数据运算):ALU、GPRs、标志寄存器等

–存储器(数据存储):存储阵列、地址译码器、读写控制电 路

–总线(数据传送):数据(MDR)、地址(MAR)和控制线

–控制器(控制):对指令译码生成控制信号

二、程序开发和执行过程简介

程序开发的发展过程

  • 最早的程序开发过程:使用打孔机,在纸带上打孔,打孔处表示0,未打孔处表示1。所有的信息都是0/1序列,如果程序需要修改,则需要重新打孔,效率不高。

  • 使用汇编语言开发程序:使用符号表示跳转位置和变量位置,这样提高了代码的可读性,也不会因为增减指令而去修改其他指令。但是需要将汇编语言通过汇编程序转换成机器语言。

    • 汇编语言(源)程序由汇编指令构成。
    • 汇编指令是用助记符和标号来表示的指令(与机器指令一一对应)
    • 指令是包含操作码和操作数或其地址码 (机器指令用二进制表示,汇编指令用符号表示,只能描述:取(或存一个数) 两个数加(或减、乘、除、与、或等) 根据运算结果判断是否转移执行。
  • 高级语言开发程序:

    • 它们与具体机器结构无关
    • 面向算法描述,比机器级语言描述能力强得多
    • 高级语言中一条语句对应几条、几十条甚至几百条指令
    • 有“面向过程”和“面向对象”的语言之分
    • 处理逻辑分为三种结构 : 顺序结构、选择结构、循环结构
    • 有两种转换方式:“编译”和“解释” :1. 编译程序(Complier):将高级语言源程序转换为机器级目 标程序,执行时只要启动目标程序即可 2.解释程序(Interpreter ):将高级语言语句逐条翻译成机器 指令并立即执行,不生成目标文件。

典型程序转换处理过程

将每个符号或者是字符转换成对应的ASCII码值,但是计算机需要编译器才能够正确运行.c文件

通过上图的处理过程,将hello.c文件编译汇编链接成二进制的可执行程序。

Hello程序的数据流动过程

不同层次语言之间的等价转换

高级语言的源程序通过编译程序转换成汇编语言的源程序,也就是各种符号表示的语言,再通过汇编程序,将汇编语言转换成只有0/1的机器语言,最后通过指令译码器转换成计算机硬件接受的控制信号。故:任何高级语言的程序最终都会通过若干条指令来完成。

**总结:**最早的程序开发都比较简单,只需要直接输入指令和数据,启动后把第一条指令地址送到PC执行。

高级语言开发需要编译器编写源程序,需要一套翻译转换专拣处理各种源程序,还需要一个可执行程序的界面(GUI:图形界面,CUI:命令行界面)。支撑程序开发和运行的环境由系统软件提供 最重要的系统软件是操作系统和语言处理系统 语言处理系统运行在操作系统之上,操作系统利用指令管理硬件。

南大袁春风计算机系统基础(一)笔记相关推荐

  1. 【计算机专业漫谈】【计算机系统基础学习笔记】W1-计算机系统概述

    利用空档期时间学习一下计算机系统基础,以前对这些知识只停留在应试层面,今天终于能详细理解一下了.参考课程为南京大学袁春风老师的计算机系统基础MOOC,参考书籍也是袁老师的教材,这是我的听课+自查资料整 ...

  2. 计算机AL教程笔记,计算机系统基础学习笔记(2)-数据的位运算操作

    C语言的位运算操作包括两类,逻辑运算操作和逻辑移位操作. 逻辑运算操作 C语言提供了四种按位逻辑操作符,分别是按位取反,按位与,按位或,按位异或.在编译时,编译器会根据操作数的宽度分别转换为不同的指令 ...

  3. 大三Java SE基础学习笔记

    Java及Java SE学习笔记 前言 主要用于记录学习过程中的一些笔记. 了解 JavaEE是指Java Enterprise Edition,Java企业版,多用于企业级开发,包括web开发等等, ...

  4. 计算机系统基础学习笔记(3)-浮点数的精度问题

    C语言中的浮点数,满足IEEE754标准,可表示带有小数的数值,C语言中的浮点数有精度限制,并不能表示所有的数. IEEE754单精度浮点数: 表示的数的10进制的有效位数只有7位,其中一位是符号位, ...

  5. 计算机系统基础学习笔记(7)-缓冲区溢出攻击实验

    缓冲区溢出攻击实验 实验介绍 实验任务 实验数据 目标程序 bufbomb 说明 bufbomb 程序接受下列命令行参数 目标程序bufbomb中函数之间的调用关系 缓冲区溢出理解 目标程序调用的ge ...

  6. 南大软件分析 前5节笔记

    IR Intermediate Representation 中间表示 3AC 三地址码 3-Address Code 每条3AC至多有三个地址,地址可以是名称,常量,编译器生成的临时变量 其实3AC ...

  7. 袁春风老师:计算机系统基础(一) 第一章

    南京大学 计算机系统基础(一)主讲:袁春风老师 基础好的读目录回顾一下即可 本课程是以csapp为教材进行讲解的 程序执行结果,不仅取决于算法.程序编写.编程语言的语法语义 ,而且取决于语言处理系统. ...

  8. 大数据-平台-解决方案-基础架构一览

    1.talkingdata  (数据平台) 2.明略数据(解决方案) 3.百融金服(金融大数据) 4.国双科技(营销大数据) 5.国信优易(媒体大数据) 6.百分点(营销大数据) 7.华院集团(解决方 ...

  9. 近日,南大通用合作伙伴大会隆重召开……

    近日天津南大通用数据技术股份有限公司(简称"南大通用")在京落地了主题为"凤凰涅槃.全新启航"的2019年度合作伙伴大会.会上,南大通用公司所阐述的广泛合作市场 ...

最新文章

  1. 三张图读懂机器学习 :基本概念、五大流派与九种常见算法
  2. 4.6 前向和反向传播-深度学习-Stanford吴恩达教授
  3. 算法工程师和算法框架开发,谁会代表未来?
  4. mac mysql
  5. 用计算器计算“异或CRC”
  6. P4047-[JSOI2010]部落划分【最小生成树】
  7. linux运维、架构之路-Zabbix监控
  8. 漫步数学分析四——集合内部
  9. infopath视图切换
  10. Linux学习总结(4)——Centos6.5使用yum安装mysql——快速上手必备
  11. sql2019更改了表的部分字段设计出现不允许保存更改解决方案
  12. setup factory mysql_(一)setupFactory零基础制作零配置安装程序实例(打包JDK Tomcat Mysql mypm)...
  13. python matplotlib 矢量图svg emf
  14. 百度劫持有哪些特征,百度快照劫持处理方法及流程?
  15. HEXO+ICARUS主题配置安装经验分享
  16. 解决: The server encountered an internal error that prevented it from fulfilling this request.
  17. 转:西部数据NAS设备hack
  18. sql:函数:开窗函数简介
  19. 模拟器客户端自动化测试实践
  20. web前端的网页优化

热门文章

  1. 创建jira sprint_如何在Excel中创建高级sprint燃尽图
  2. “低代码”革了谁的命?
  3. 2021 强网杯 pwn notebook
  4. mysql 别名_MySQL 字段别名(列别名)
  5. Elasticsearch基础11——索引之别名使用
  6. PHP的eregi函数:检查字符串的有效性
  7. 各纬度气候分布图_气候气压带图_世界气候气压带风带分布图要图(需要表识纬度)-4d影院专题信息栏目...
  8. Python实现图像的全景拼接,这不比ps牛逼
  9. PAT 乙级 1033 旧键盘打字 python
  10. 记腾讯的暑期实习面试