计算机原理
计算机概述
计算机的特点
- 运算速度快
- 计算精度高
- 具有记忆功能
- 具有逻辑判断功能
- 高度自动化
计算机的发展概况
世界上第一台计算机:ENIAC
时间:1946 0214 // 情人节( 所以请在情人节多陪陪你的计算机(bushi
- 第一代 (1946-1958) 电子管
- 使用机器语言
- 产生了汇编语言
- 第二代 (1959-1964) 晶体管
- 产生了高级编程语言
- 第三代 (1965-1970) 中小规模集成电路
- 产生图形化操作系统
- 第四代 (1971-NOW) 大,超大规模集成电路
计算机的应用领域
- 科学计算
- 信息处理
- 过程控制
- 计算机辅助设计
CAD/ 教学CAI/ 制造CAM - 人工智能
- 网络应用
计算机的分类
- 按功能和用途
- 通用计算机
- 专用计算机
- 按工作原理
- 数字计算机
- 模拟计算机
- 混合计算机
- 按性能规模
- 巨型计算机
- 大型计算机
- 中型计算机
- 小型计算机
- 微型计算机
- 单片机
计算机的发展趋势
- 巨型化
- 微型化
- 网络化
- 智能化
计算机的组成
- 计算机系统
- 硬件
- 主机
- 中央处理器 (
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
操作系统的主要功能
- 存储器管理
- 处理器管理
- 设备管理
- 文件管理
- 用户接口管理
计算机的工作过程
原始数据和处理程序通过输入设备输入计算机并存放于存储器中,控制器执行程序指挥运算器从内存中取出数据,进行数据处理后将结果放入外存储器中,通过输出设备将存储器中的结果输出
计算机中的数据
数制
| 进制 | 基数 | 数码 | 进位规则 | 后缀标识 | 举例 |
|---|---|---|---|---|---|
| 二进制 | 2 | 0,1 | 逢二进一 | B | 101B / (101)2 |
| 十进制 | 10 | 0-9 | 逢十进一 | D(可省略) | 28D / (28)10 |
| 八进制 | 8 | 0-7 | 逢八进一 | O / Q(常用于手写) | 17Q / (17)8 |
| 十六进制 | 16 | 0-9, A-F | 逢十六进一 | H | 2BCH / (2BC)16 |
数制间的转换
R 进制转换为十进制
按权展开相加
权:位值
- 二进制转换为十进制
- 八进制转换为十进制
- 十六进制转换为十进制
十进制转换为 R 进制
整数:除 R 逆取余 小数:乘 R 顺取整
十进制转换为二进制
- 整数
除 2 逆取余
215D = 11010111B
22151210712531226021312602312110- 小数
乘 2 顺取整
0.6875D = 0.1011B
十进制转换为八进制
- 整数
除 8 逆取余
75D = 113Q
87538918110- 小数
乘 8 顺取整
0.6875D = 0.54Q
十进制转换为十六进制
- 整数
除 16 逆取余
243D = F3H
1624331615F0- 小数
乘 16 顺取整
0.4512D ≈ 0.738H(保留 3 位小数)
二/八/十六进制转换
- 二进制转换为八进制
以小数点为界,向左向右,每三位为一组,不足的以 0 补足
- 二进制转换为十六进制
以小数点为界,向左向右,每四位为一组,不足的以 0 补足
- 八进制转换为二进制
36.5Q = 011110.101B
每一位八进制数转换为三位二进制数
- 十六进制转换为二进制
3A.BH = 00111010.1011B
每一位十六进制数转换为四位二进制数
二进制的运算规则
- 加法
0+0=0
0+1=1
1+0=1
1+1=10
- 减法
0-0=0
0-1=1(高位借一作二)
1-0=1
1-1=0
- 乘法
00=0
01=0
10=0
11=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]补
定点与浮点
- 概念
定点
- 整数:小数点隐含在最低位数值之后
- 小数:小数点隐含在最高位数值之前,符号位之后
浮点
- S:尾数,N 的有效数值
- P:阶码,小数点的位置
阶码,尾数各自具有符号位
|阶符 | 阶码 | 数符 | 数码|example:1011 -> |0|11|0|1011|
- 表示范围
- 浮点比定点大得多
- 浮点尾数的减少会影响运算精度
- 浮点运算
- 规格化:让尾数最高位为 1
- example: N = 2^11 * 0.0101 (非规格化) |0|11|0|0101| -> 改写为:N=2^10*0.1010 |0|10|0|1010|
- 对阶:小阶向大阶看齐
- 加减:对阶后尾数相加/减
- 乘除:阶码相加(减),尾数相乘(除)
常用编码
- BCD 码
- 8421 码
- ASCII 码
美国信息交换标准码
plaintext
2bit -> 一个字符
0 = 0110000B = 48D
A = 1000001B = 65D
a = 1100001B = 97D0-9 < A-Z < a-z
- 逻辑数据
- True 0
- False 1
- 汉字编码
- 输入编码
- 数字
- 区位码 (D)
- 国标码 (H)
- 机内码 (H)
- 拼音
- 字形
- 数字
- 内码
- 字模码
- 点阵
- 16*16
- 48*48
- 点阵
- 输入编码
指令系统
概述
指令与指令系统
指令:计算机能够识别和执行的操作命令
指令系统(指令的集合)具有以下特点
- 完备性:系统丰富,功能齐全
- 有效性:高效
- 规整性:对称性,匀齐性,一致性
- 兼容性:可不经修改地运行于另一台设备
指令集
- RISC:精简指令集计算机
- CISC:复杂指令集计算机(常用)
指令格式
指令格式
|操作码(OP)| 原操作地址(最少 2 个),操作结果地址 |
整条指令的长度:指令字长
地址码的分类
- 三地址:原a + 原b + 果
- 二地址:原a + 原b + 果,原a = 果
- 一地址:地址位于累加器
- 零地址:无操作数(空指令/pause)/堆栈指针(SP)
操作码的分类
- 定长:长度固定
- 扩展:长度不固定;一种优化技术,为使用频率高的指令分配短的机器码(令编码效率更接近信息熵)
寻址方式
- 指令
- 顺序
- 跳跃
- 操作数
- 立即:速度快,灵活性差
- 直接:地址在存储器中
- 寄存器:地址在寄存器中
- 间接:指向另一个地址的地址
- 变址:偏移量
- 基址:基准值
- 基址加变址
- 相对:程序计数器(PC)+ 偏移量
指令的功能和类型
- 数据传送
- 数据传送
- 传送(MOV)
- 交换(XCHG)
- 入栈(PUSH)
- 出栈(POP)
- I/O
- 专用
- 用传送指令实现
- IOP
- 数据传送
- 数据处理
- 算术运算
- 逻辑
- 移位
- 算数
- 逻辑
- 循环
- 串操作
- 程序控制
- 转移
- 条件
- 无条件
- 循环控制
- 子程序调用和返回
- 程序自中断(软中断)
- 转移
- 处理机控制(直接控制 CPU)
- 停机(HALT)
- 空操作(NOP)
- 开关中断
汇编语言
面向机器,使用助记符,低级语言,用于人机对话,不能被机器直接执行,需由汇编程序翻译为机器语言