第一章 基础知识
1.1 机器语言
机器语言是机器指令的集合。
机器指令就是一台机器可以正确执行的命令。
机器指令是一列二进制数字。
1.2 汇编语言的产生
汇编语言的主体是汇编指令。
汇编指令和机器指令的差别在于指令的表示方法。
汇编指令是机器指令便于记忆的书写格式。
汇编指令是机器指令的助记符,如下所示:
- 操作:寄存器BX的内容送到AX中
- 机器指令:1000100111011000
- 汇编指令:move ax,bx
程序员在最早(相对于今天来说)用的便是汇编指令编写源程序。
下图便描述了最初程序员编译程序的流程
1.3 汇编语言的组成
汇编语言有以下三类指令:
汇编指令:机器的助记符,有对应的机器码。
伪指令:没有对应机器码,由编译器执行,计算机并不执行。
其他符号:如+、-、*、/、等,由编译器识别,没有对应机器码。
汇编语言的核心是汇编指令,它决定了汇编语言的特性。
1.4 存储器
CPU 是计算机的核心部件,它控制整个计算机的运作并进行运算。
指令和数据在存储器中存放,也就是我们俗称的内存。
1.5 指令和数据
在内存或磁盘上,指令和数据均以二进制信息形式存储,二者并无任何差别。
1.6 存储单元
电子计算机的最小信息单位是 bit(音译为比特)。
一个比特等于一个二进制位(简称:位)。
8个 bit(比特) 组成一个 Byte(字节)。
拓展:两个字节为一个字,即16位。
微型机存储器的存储单元可以存储一个 Byte,即8个二进制位。
一个存储器有 128 个存储单元,它可以存储 128 个 Byte。
微机存储器的容量是以字节为最小单位计算的。
我们一般用以下单位计算存储容量:
- 1KB = 1024B
- 1MB = 1024KB
- 1GB = 1024MB
- 1TB = 1024GB
1.7 CPU对存储器的读写
存储器被划分为多个存储单元,存储单元从0开始顺序编号。
这些编号可以看作存储单元在存储器中的地址。
我们需要注意的是,在计算机中存储,一般都是从0开始编号,比如长度为16的信息,所占用的地址空间可能为0~15.
CPU进行数据读写,必须和外部器件(标准说法是芯片)进行下面3类信息交互:
- 存储单元的地址(地址信息)
- 器件的选择,读或写命令(控制信息)
- 读或写的数据(数据信息)
计算机中有专门连接CPU和其他芯片的导线,通常称为总线。
总线在物理层面讲,就是一根根导线的集合。
根据传送信息不同,总线在逻辑上划分为3类:地址总线、控制总线和数据总线。
1.8 地址总线
CPU是通过地址总线来指定存储器单元的。
地址总线上能传送多少不同的信息,CPU就可以对多少个存储单元寻址。
假如:某CPU有N根地址线,那么该CPU地址总线宽度为N,CPU则可以寻找 2 N 2^N 2N寻址单元。
这么说可能有点不容易理解:
换句话说:现在假设CPU有10根地址线,那么该CPU则同时可以传送10个二进制数,那么10个二进制数的表示范围为
0
0
0 ~
2
10
−
1
{2^{10}-1}
210−1,譬如:CPU的十根地址线一共传送了一个地址为0000000000的二进制数X,那么这个数的存储地址为0,再比如该CPU又传送了一个地址为1111111111的二进制数Y,那么这个数的存储地址为
2
10
−
1
2^{10}-1
210−1,因此,我们可以说CPU有10根地址线则可以寻找
2
10
2^{10}
210寻址单元。
1.9 数据总线
CPU 与内存或其他器件之间的数据传送是通过数据总线来进行的。
数据总线的宽度决定了 CPU 和外界的数据传送速度。
8 根数据总线一次可传送一个 8位二进制数据(即一个字节)。
16根数据总线一次可传送两个字节。
1.10 控制总线
CPU对外部器件的控制是通过控制总线来进行的。
控制总线的宽度决定了CPU对外部器件的控制能力。