进制转换应用场景_程序的表示、转换与链接 - Character I

78233a0b0d8f86d47b9cac994256bdbd.png

tips:本系列是学习南京大学袁春风老师“计算机系统基础”系列mooc课程所做的notes;

程序的表示、转换与链接

一、计算机系统概述

I. 为什么要学习计算机系统基础

  1. 程序执行结果不仅依赖于高级语言语法和语义,还与其他的方面有关,理解程序的执行结果要从系统层面考虑;“系统思维”,站在“计算机系统”的角度考虑问题
  2. 程序执行结果不仅取决于算法、程序编写,而且取决于语言处理系统、操作系统,ISA,微体系结构;ISA(指令集体系结构)是计算机软硬件的中间层,指令集是对计算机硬件功能的抽象功能转换:下层是上层的实现,上层是下层的抽象,底层为上层提供支撑环境
  3. 计算机系统抽象层:应用(问题)—> 算法 —> 编程(语言)—> OS/VM —> ISA —> 微体系结构 —> 功能部件 —> 电路 —> 器件

II. 冯. 诺伊曼结构的主要思想

  1. 1946年,第一台通用电子计算机ENIAC(Electronic Numerical Integrator And Computer)(电子数字积分计算机)在宾夕法尼亚大学诞生,特点:真空电子管、十进制表示信息并运算、手动编程(设置开关和拔插电缆)
  2. 冯. 诺依曼结构最重要的思想是 存储程序(stored-program)
  3. 工作方式:任何要计算机完成的工作都要实现编写成程序,然后将程序和原始数据送入主存并启动执行,一旦程序被执行,计算机应能在不需要工作人员的干预之下,自动完成逐条取出指令和执行指令的任务
  4. IAS计算机是现代计算机的原型机
  5. 主要思想:
  • 计算机应由运算器、控制器、存储器、输入输出设备五个基本部件组成
  • 各部件的基本功能:
    • 存储器存放数据和指令,形式上没有区别,但计算机应能区分数据和指令
    • 控制器自动取出指令执行
    • 运算器能进行加减乘除四种基本算术运算,也能执行逻辑运算和附加运算
    • 操作人员能通过输入输出设备和计算机通信
  • 内部以二进制表示指令和数据,每条指令由操作码和地址码组成,操作码指出操作类型,地址码指出操作数的地址,由指令组成程序
  • 采取”存储程序“工作方式

11475d4464b395e3dc19c4821269b70f.png

a4dfef0075ec628fe563bdb4dab7862a.png

6. 计算机是如何工作的:

    • 程序由指令组成
    • 指令执行过程中,指令和数据从存储器取到CPU,存放CPU的寄存器中,指令在IR中,数据在GPR中
    • 程序在执行前:数据和指令事先存放在存储器中,每条指令和每个数据都有地址,指令按序存放,指令由OP、ADDR字段组成,程序起始地址置PC
    • 开始执行程序:(指令执行的循环)
      • 一、根据PC取指令
      • 二、指令译码
      • 三、取操作数
      • 四、指令执行
      • 五、回写结果
      • 六、修改PC的值,继续执行下一条指令

7. 总结

    • 什么是计算机:计算机是一种能对数字信息化进行自动、高速算术和逻辑运算的处理装置
    • 计算机的基本部件和功能:
      • 运算器(数据运算):ALU(Arithmetic logic unit 算术逻辑运算单元)、GPRs( General purpose register 通用寄存器)、标志寄存器等
      • 存储器(数据存储):存储阵列、地址译码器、读写控制电路
      • 总线(数据传送):数据(MDR Memory Data Register 数据寄存器)、地址(MAR Memory Address Register 地址寄存器)和控制线
      • 控制器(控制):对指令译码生成控制信号
    • 计算机实现的所有任务都是通过执行一条条指令完成的

III. 从机器语言到高级编程语言

  1. 机器语言:用0/1代码编写程序,并记录在纸袋或卡片上
  2. 汇编语言:用助记符表示操作码和寄存器,用标号表示位置
  3. 汇编语言的优点:
  • 不会因为增减指令而修改其他指令
  • 不需记忆指令编码,编写方便
  • 可读性比机器语言强

4. 汇编语言(源)程序由汇编指令构成

    • 什么是汇编指令:用助记符和标号来表示的指令(与机器指令一一对应)
    • 什么是指令: 包含操作码和操作数或其地址码(机器指令用二进制表示,汇编指令用符号表示)
    • 只能描述:取(或存一个数)、两个数相加(或减、乘、除、与、或等)、根据运算结果判断是否转移执行
    • 机器语言和汇编语言都是面向机器结构的语言,故统称为机器级语言

5. 高级语言的特点:

    • 与具体机器结构无关
    • 面向算法描述,比机器级语言描述能力强
    • 一条语句对应多条指令
    • 面向过程和面向对象之分
    • 处理逻辑分为 顺序、选择、循环
    • 转换方式分为 编译、解释
      • 编译(complier):将高级语言源程序转换为机器级目标程序,执行时启动目标程序即可
      • 解释(interpreter):将高级语言语句逐条翻译成机器指令并立即执行 ,不生成目标文件

56bf06213aad6e0820d82818f16c6880.png

0dd8697fb87536d4eb2c55e0c5362487.png

f37f3304dcb459a00c9349ccdb1df07d.png

IV. 编程语言和计算机系统层次

  1. 第一代程序设计语言:机器语言(1GL)应用程序—>指令集体系结构—>计算机硬件
  2. 第二代程序设计语言:汇编语言(2GL)应用程序—>汇编程序—>操作系统—>指令集体系结构—>计算机硬件
  3. 第三代程序设计语言:过程式语言(3GL)编码时需要描述实现过程,即“如何做”
  4. 第四代程序设计语言:非过程化语言(4GL)编码时只需说明“做什么”,不需要描述具体的算法实现细节
  5. 三四代程序设计语言:应用程序—>语言处理程序—>操作系统—>指令集体系结构—>计算机硬件
  6. notes:语言的发展是一个不断“抽象”的过程,因而,相应的计算机系统也不断有新的层次出现
  7. 语言处理系统包括:各种语言处理程序(如编译、汇编、链接)、运行时系统(如库函数、调试、优化等功能),操作系统包括人机交互界面、提供服务功能的内核例程
  8. 回顾:计算机系统抽象层的转换(见上文)

033ccb27f6d24c60d06001630f6726ad.png

10. 什么是ISA

9a2bc0d1bdfb3d5431dfa37c2944f7d0.png

11. ISA和计算机组成之间的关系:ISA是计算机硬件功能的抽象

41a9a851b5b759643ecd22d8394678e4.png

V. 本课程内容

  1. 表示:(Representation)
  • 不同数据类型(包括有无符号整数、浮点数、数组、结构等)在寄存器或存储器中如何表示和存储
  • 指令如何表示和编码(译码)
  • 存储地址(指针)如何表示,如何生成复杂数据结构中数据元素的地址

2. 转发:(Translation)

    • 高级语言程序对应的机器级代码是怎样的,如何转换并链接生成可执行文件

3. 执行控制流:(Control flow)

    • 计算机能理解的程序是如何组织和控制的
    • 如何在计算机中组织多个程序的并发执行
    • 逻辑控制流中的异常事件及其处理
    • I/O操作的执行控制流(用户态 -> 内核态)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值