CPU
- 负责自动取指令和自动执行指令
- 指令集: 处理器可以识别的指令
- CPU内部构造
- 控制部件
控制整个处理器运行状态 什么时候取指令、接收数据、发数据 - 算术逻辑
算数、逻辑运算 - 寄存器
临时存储数据的地方
寄存器的大小和CPU位数相同
8008 - 8位CPU - 8位寄存器
8086 - 16位CPU - 16位寄存器
内存
- 存储指令和数据
- 冯诺依曼计算机是以存储器为核心 指令和数据存储到一个地方 cpu负责执行指令
- 内存内部逻辑构造
内存单元的长度固定8bit(位)-1byte(字节)
地址线决定了CPU能访问的内存的最大位置
2根地址线能访问4个内存单元[00,11]
8根地址线能访问256个内存单元[00000000,11111111]
n根地址线能访问2^n个内存单元
- 读写流程
写流程
通过地址线给出地址(找到内存单元)
数据线给出数字
发出写命令(I/O控制) -> 数据写入到目标内存单元
读流程
地址线给出地址(找到内存单元)
发出读命令(I/O控制) -> 内存数据读到运算器
自动计算
编程就是将指令按照想要的顺序放到内存里 CPU依次执行指令
CPU里面有一个指令指针寄存器 这个寄存器的功能就是保存指令的地址
执行流程
指令的组成
一条指令可以由操作码和操作数组成 也可以只由操作码组成
以(1+4)/(6-1)为例
| 内存地址 | 指令 | 指令的含义 |
|---|---|---|
| 0C | ||
| 0B | 11110100 | 停机 |
| 0A | 00001111 | (操作数)结果存储的目标地址 |
| 09 | 01110000 | (操作码)将计算结果保存到目标地址 |
| 08 | 11001010 | A/B 结果存储在A |
| 07 | 00000001 | (操作数)1的二进制形式 |
| 06 | 01000100 | (操作码)寄存器B与操作数相减结果在寄存器B |
| 05 | 00000110 | (操作数)6的二进制形式 |
| 04 | 01101010 | (操作码)将操作数放在寄存器B |
| 03 | 00000100 | (操作数)4的二进制形式 |
| 02 | 01001100 | (操作码)寄存器A与操作数相加结果在寄存器A |
| 01 | 00000001 | (操作数)1的二进制形式 |
| 00 | 01101001 | (操作码)将操作数放在寄存器A |
{00,01} {02,03} {04,05} {06,07} {08} {09,0A} {0B}分别是一条指令