Skip to content

计算机原理 ​

计算机概述 ​

计算机的特点 ​

  1. 运算速度快
  2. 计算精度高
  3. 具有记忆功能
  4. 具有逻辑判断功能
  5. 高度自动化

计算机的发展概况 ​

世界上第一台计算机:ENIAC

时间:1946 0214 // 情人节( 所以请在情人节多陪陪你的计算机(bushi

  • 第一代 (1946-1958) 电子管
    • 使用机器语言
    • 产生了汇编语言
  • 第二代 (1959-1964) 晶体管
    • 产生了高级编程语言
  • 第三代 (1965-1970) 中小规模集成电路
    • 产生图形化操作系统
  • 第四代 (1971-NOW) 大,超大规模集成电路

计算机的应用领域 ​

  1. 科学计算
  2. 信息处理
  3. 过程控制
  4. 计算机辅助设计 CAD / 教学 CAI / 制造 CAM
  5. 人工智能
  6. 网络应用

计算机的分类 ​

  1. 按功能和用途
  • 通用计算机
  • 专用计算机
  1. 按工作原理
  • 数字计算机
  • 模拟计算机
  • 混合计算机
  1. 按性能规模
  • 巨型计算机
  • 大型计算机
  • 中型计算机
  • 小型计算机
  • 微型计算机
  • 单片机

计算机的发展趋势 ​

  1. 巨型化
  2. 微型化
  3. 网络化
  4. 智能化

计算机的组成 ​

  • 计算机系统
    • 硬件
      • 主机
        • 中央处理器 ( CPU )
          • 控制器
          • 运算器 (ALU)
            • 算数运算器
            • 逻辑运算器
        • 内存储器 (主存)
          • ROM 只读存储器
          • RAM 随机存储器
          • Cache 缓存
      • 外设
        • 外存储器 (辅存)
          • 硬盘
          • U 盘
          • 光盘
        • I/O 设备
          • 输入设备
          • 输出设备
    • 软件
      • 系统软件
        • 操作系统 (DOS,Windows,GNU/Linux,FreeBSD,etc...)
        • 语言处理程序 (gcc,clang,go,cargo,etc...)
        • 数据库管理系统 (MySQL,PostgreSQL,SQLite,etc...)
        • 服务程序
      • 应用软件

名词解释 ​

  • 硬件:由电子元器件和机械装置组成的硬设备
  • 运算器:算数逻辑部件,用来进行加,减,乘,除等算术运算和 and,or,not 等逻辑运算
  • 储存器:存放数据,程序和计算结果的记忆部件
  • 主机:运算器,控制器和存储器合在一起构成的处理系统
  • 系统软件:构成操作系统的程序和相关程序的集合
  • 操作系统:Operating System,用户与计算机之间的接口
  • CPU:Central Processing Unit 中央处理器,由控制器和运算器组成
  • ALU:算术逻辑部件,用来进行加,减,乘,除等算术运算和 and,or,not 等逻辑运算

Other ​

操作系统的主要功能

  • 存储器管理
  • 处理器管理
  • 设备管理
  • 文件管理
  • 用户接口管理

计算机的工作过程 ​

原始数据和处理程序通过输入设备输入计算机并存放于存储器中,控制器执行程序指挥运算器从内存中取出数据,进行数据处理后将结果放入外存储器中,通过输出设备将存储器中的结果输出

计算机中的数据 ​

数制 ​

进制基数数码进位规则后缀标识举例
二进制20,1逢二进一B101B / (101)2
十进制100-9逢十进一D(可省略)28D / (28)10
八进制80-7逢八进一O / Q(常用于手写)17Q / (17)8
十六进制160-9, A-F逢十六进一H2BCH / (2BC)16

数制间的转换 ​

R 进制转换为十进制 ​

按权展开相加

权:位值

  1. 二进制转换为十进制
1413020110.1−10−20−31−4B=1×24+1×23+0×22+0×21+1×20+1×2−1+0×2−2+0×2−3+1×2−4=16+8+0+0+1+12+0+0+116=25+816+116=25916
  1. 八进制转换为十进制
120120.0−11−2Q=1×82+0×81+2×80+0×8−1+1×8−2=64+0+2+0+164=66164
  1. 十六进制转换为十进制
11D0.F−1H=1×161+D×160+F×16−1=1×16+13×1+15×116=16+13+1516=291516

十进制转换为 R 进制 ​

整数:除 R 逆取余 小数:乘 R 顺取整

  1. 十进制转换为二进制

    1. 整数

    除 2 逆取余

    215D = 11010111B

    22151
    21071
    2531
    2260
    2131
    260
    231
    211
    0
    1. 小数

    乘 2 顺取整

    0.6875D = 0.1011B

    0.6875×21.3750→10.3750×20.7500→00.7500×21.5000→10.5000×21.0000→10.0000
  2. 十进制转换为八进制

    1. 整数

    除 8 逆取余

    75D = 113Q

    8753
    891
    811
    0
    1. 小数

    乘 8 顺取整

    0.6875D = 0.54Q

    0.6875×85.5000→50.5000×84.0000→40.0000
  3. 十进制转换为十六进制

    1. 整数

    除 16 逆取余

    243D = F3H

    162433
    1615F
    0
    1. 小数

    乘 16 顺取整

    0.4512D ≈ 0.738H(保留 3 位小数)

    0.4512×167.2192→70.2192×163.5072→30.5072×168.1152→8

二/八/十六进制转换 ​

  1. 二进制转换为八进制

0100― 101―.010― 010―B=45.22Q

以小数点为界,向左向右,每三位为一组,不足的以 0 补足

120100―2 120110―2 021100―2 021100―2

  1. 二进制转换为十六进制

0111― 1100―.0101― 0100―H=7C.54H

以小数点为界,向左向右,每四位为一组,不足的以 0 补足

03121110―16 13120100―16.03120110―16 03120100―16

  1. 八进制转换为二进制

36.5Q = 011110.101B

每一位八进制数转换为三位二进制数

0113 1106 1015

  1. 十六进制转换为二进制

3A.BH = 00111010.1011B

每一位十六进制数转换为四位二进制数

00113 1010A 1011B

二进制的运算规则 ​

  1. 加法

0+0=0
0+1=1
1+0=1
1+1=10

  1. 减法

0-0=0
0-1=1(高位借一作二)
1-0=1
1-1=0

  1. 乘法

00=0
0
1=0
10=0
1
1=1

  1. 除法
plaintext
         1101
     ________
110 | 1001110
       110
       ------
        111
        110
        -----
         110
         110
         ----
           0

原/反/补码 ​

  • 机器数:把符号数字化 (0 代表 '+', 1 代表 '-') 的数
  • 真值:带 '+', '-' 号的数
  • 原码 ( 机器数 ):符号位 0 为正数,1 为负数,其余位表示尾数本身
  • 反码
    • 正数:= 原码
    • 负数:符号位不变,其余位按位取反
  • 补码
    • 正数:= 原码
    • 负数:符号位不变,其余位按位取反,加 1(在其反码的基础上加 1)
  • 模:2^字长,字长默认为 8bit
  • 原码的表示范围:$$+(2^{n-1}-1)~-(2^{n-1}-1)$$
    • example: n = 8, [-127,+127]
  • 反码的表示范围:$$+(2^{n-1}-1)~-(2^{n-1}-1)$$
    • example: n = 8, [-127,+127]
  • 补码的表示范围:$$+2^{n-1}~-(2^{n-1}-1)$$
    • example: n = 8, [-128,+127]
  • 利用模长求补码:补码 = 模 + x
    • example: x = -16H, [x]补 = 28 + x = FF + 1 - x = FF + 1 - 16H = F9H
  • 表示
    • 原码:[x]原
    • 反码:[x]反
    • 补码:[x]补

定点与浮点 ​

  1. 概念
  • 定点

    • 整数:小数点隐含在最低位数值之后
    • 小数:小数点隐含在最高位数值之前,符号位之后
  • 浮点

    N=2PS
    • S:尾数,N 的有效数值
    • P:阶码,小数点的位置

    阶码,尾数各自具有符号位
    |阶符 | 阶码 | 数符 | 数码|

    example:1011 -> |0|11|0|1011|

  1. 表示范围
    1. 浮点比定点大得多
    2. 浮点尾数的减少会影响运算精度
  2. 浮点运算
  • 规格化:让尾数最高位为 1
    • 1/2<=S<1
    • example: N = 2^11 * 0.0101 (非规格化) |0|11|0|0101| -> 改写为:N=2^10*0.1010 |0|10|0|1010|
  • 对阶:小阶向大阶看齐
  • 加减:对阶后尾数相加/减
  • 乘除:阶码相加(减),尾数相乘(除)

常用编码 ​

  1. BCD 码
    • 8421 码
  2. ASCII 码
    美国信息交换标准码
plaintext
2bit -> 一个字符
0 = 0110000B = 48D
A = 1000001B = 65D
a = 1100001B = 97D

0-9 < A-Z < a-z

  1. 逻辑数据
    • True 0
    • False 1
  2. 汉字编码
    1. 输入编码
      • 数字
        • 区位码 (D)
        • 国标码 (H)
        • 机内码 (H)
      • 拼音
      • 字形
    2. 内码
    3. 字模码
      • 点阵
        • 16*16
        • 48*48

指令系统 ​

概述 ​

指令与指令系统 ​

指令:计算机能够识别和执行的操作命令

指令系统(指令的集合)具有以下特点

  1. 完备性:系统丰富,功能齐全
  2. 有效性:高效
  3. 规整性:对称性,匀齐性,一致性
  4. 兼容性:可不经修改地运行于另一台设备

指令集

  • RISC:精简指令集计算机
  • CISC:复杂指令集计算机(常用)

指令格式 ​

指令格式 ​

|操作码(OP)| 原操作地址(最少 2 个),操作结果地址 |
整条指令的长度:指令字长

地址码的分类 ​

  1. 三地址:原a + 原b + 果
  2. 二地址:原a + 原b + 果,原a = 果
  3. 一地址:地址位于累加器
  4. 零地址:无操作数(空指令/pause)/堆栈指针(SP)

操作码的分类 ​

  1. 定长:长度固定
  2. 扩展:长度不固定;一种优化技术,为使用频率高的指令分配短的机器码(令编码效率更接近信息熵)

寻址方式 ​

  1. 指令
    1. 顺序
    2. 跳跃
  2. 操作数
    • 立即:速度快,灵活性差
    • 直接:地址在存储器中
    • 寄存器:地址在寄存器中
    • 间接:指向另一个地址的地址
    • 变址:偏移量
    • 基址:基准值
    • 基址加变址
    • 相对:程序计数器(PC)+ 偏移量

指令的功能和类型 ​

  1. 数据传送
    • 数据传送
      • 传送(MOV)
      • 交换(XCHG)
      • 入栈(PUSH)
      • 出栈(POP)
    • I/O
      • 专用
      • 用传送指令实现
      • IOP
  2. 数据处理
    • 算术运算
    • 逻辑
    • 移位
      • 算数
      • 逻辑
      • 循环
    • 串操作
  3. 程序控制
    • 转移
      • 条件
      • 无条件
    • 循环控制
    • 子程序调用和返回
    • 程序自中断(软中断)
  4. 处理机控制(直接控制 CPU)
    • 停机(HALT)
    • 空操作(NOP)
    • 开关中断

汇编语言 ​

面向机器,使用助记符,低级语言,用于人机对话,不能被机器直接执行,需由汇编程序翻译为机器语言