一、机器语言到汇编语言
1.1 机器语言与机器指令
- 机器语言是机器指令的集合
- 机器指令是一台机器可以正确执行的命令
- 机器指令由一串二进制数表示,如01010000
1.2 汇编语言与汇编指令
- 汇编语言的主体是汇编指令
- 汇编指令和机器指令的差别在于指令的表示方法上
- 汇编指令是机器指令便于记忆的书写格式
- 汇编指令是机器指令的助记符
1.3 物理结构到逻辑结构
对于一块主板,其物理结构是这样的:
但是我们不用去记忆物理结构,只需要去研究其逻辑结构就OK了,如图所示:
1.4 汇编语言的工作过程
程序员写汇编指令,由编译器将其翻译成机器码,最后由计算机执行。如下图所示:
二、浅谈计算机组成
2.1 CPU与内存
CPU是计算机的核心部件,控制整个计算机的运作并进行运算。想要让一个CPU工作,就必须向它提供指令和数据。指令和数据在存储器(内存)中存放,离开了内存,性能再好的cpu也无法工作。
存储器被划分为若干个存储单元,每个存储单元从0还是顺序编号。在8086中有20条数据线,寻址空间为2的20次幂,即1MB
2.2 指令与数据的表示
- 计算机中的指令和数据都是以二进制的形式存储在内存或磁盘上。
- 同一个二进制信息根据存储的地方不同,CPU会执行不同的解读
- 数据有二、八、十、十六四种进制,在8086中常用十六进制
- B/KB/MB/GB/TB等称为数据量,进制为1024
2.3 计算机中的总线
在计算机中有专门连接CPU和其他芯片的导线,称为总线。在物理上就是一根根导线的集合,在逻辑上,可分为以下三类:
- 地址总线
- 数据总线
- 控制总线
2.3.1 地址总线
- CPU是通过地址总线来指定存储单元的
- 地址总线宽度决定了可寻址的存储单元的大小
- N根地址总线(宽度为N),对应的寻址空间是2的N次幂
2.3.2 数据总线
- CPU与内存或其他器件之间的数据传输是通过数据总线来进行的
- 数据总线的宽度决定了CPU和外界数据传输的速度
- 如下图是8088和8086向内存中写入数据89D8H时的数据传输
2.3.3 控制总线
- CPU通过控制总线对外部器件进行控制
- 控制总线是一些不同控制线的集合
- 控制总线的宽度决定了CPU对外部器件的控制能力
2.4 x86CPU性能比较
CPU | 地址总线宽度 | 寻址能力 | 数据总线宽度 | 一次传送数据 | 读取1KB数据需读取的次数 |
---|---|---|---|---|---|
8080 | 16 | 640KB | 8 | 1B | 1024 |
8088 | 20 | 1MB | 8 | 1B | 1024 |
8086 | 20 | 1MB | 16 | 2B | 512 |
80286 | 24 | 16MB | 16 | 2B | 512 |
80386 | 32 | 4GB | 32 | 4B | 256 |
三、内存的读写与地址空间
3.1 CPU对存储器的读写
CPU要想进行数据的读写,必须和外部器件进行三类信息的交互:
- 存储单元的地址(地址信息)
- 器件的选择或写命令(控制信息)
- 读或写的数据(数据信息)
如下图所示:
3.2 内存地址空间
地址总线宽度为N的CPU的寻址空间为2的N次幂B,8086CPU的地址总线宽度为20,那么可以寻址1MB个内存单元,其内存地址空间为1MB
其中存储器分为RAM和ROM:
他们在主板上的分布图可以简化为下图:
在CPU中将各类的存储器看做一个逻辑存储器,并对其进行一个统一编址:将所有的物理存储器看成一个由若干个存储单元组成的逻辑存储器,每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间,如下图所示
CPU在段地址空间中读写数据,实际上就是在对应的物理存储器中读写数据