第1章 基础知识
# 第1章 基础知识
# 1.1 机器语言
机器语言就是机器指令的集合,机器指令展开来讲就是一台机器可以正确执行的命令
# 1.2 汇编语言的产生
- 汇编语言的主题是汇编指令。
- 汇编指令和机器指令的差别在于指令的表示方法上,汇编指令是机器指令便于记忆的书写格式。
- 寄存器:简单来说就是 CPU 中可以存储数据的器件,一个 CPU 可有多个寄存器。AX 是其中一个寄存器的代号,BX 是另一个寄存器的代号。
操作 :寄存器 BX 内容送到 AX 中
机器指令:1000100111011000
汇编指令:mov ax,bx
因为计算机只能读懂机器指令,需要使用编译器将汇编指令编译成机器指令。
# 1.3 汇编语言的组成
三类指令组成:
- 汇编指令:机器码的助记符,有对应的机器码。
- 伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
- 其他符号:如 +、-、*、/ 等,由编译器识别,没有对应的机器码。
汇编语言的核心是汇编指令,它决定了汇编语言的特性。
# 1.4 存储器
- 就是我们平常所说的内存.
- 磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被 CPU 使用。
# 1.5 存储单元
- 存储器会被划分若干个存储单元,每个存储单元从0开始顺序编号,例如一个存储器有128个存储单元,编号从0~127。
- 计算机最小信息单位是 bit (比特),也就是一个二进制位;
- 8个 bit 组成一个 Byte,也就是通常讲的一个字节。即8个二进制位;
- 一个存储器有128个存储单元,它可以存储128个 Byte。
还可用以下单位来计量容量(以下用 B 来代表 Byte):
- 1KB = 1024 B
- 1MB = 1024 KB
- 1GB = 1024 MB
- 1TB = 1024 GB
# 1.6 CPU 对存储器的读写
CPU 要进行数据的读写,必须和外部器件(芯片)进行下面3类信息的交互:
- 存储单元的地址(地址信息)
- 器件的选择,读或写的命令(控制信息)
- 读或写的数据(数据信息)
通过地址总线,数据总线,控制总线对存储芯片中的数据进行读写。
# 1.7 地址总线
CPU 是通过地址总线来指定存储单元的,所以地址总线能传输多少不同的信息,CPU 就可以对多少个存储单元进行寻址。
假设:一个 CPU 有10根地址总线,如何看寻址情况
一根导线稳定状态有两种,高电平或低电平,即1或0;10根导线则可以传输10位二进制数据,所以最小为0,最大为1023。
# 1.8 数据总线
数据总线的宽度决定了 CPU 和外界的数据传送速度。8根数据总线一次可传1个字节(8位二进制)数据。16跟数据总线一次可传2个字节数据。
# 1.9 控制总线
CPU 通过控制总线实现对外部器件的控制。有多少根控制总线,就意味着 CPU 提供了对外部器件的多少种控制。所以,控制总线的宽度决定了 CPU 对外部器件的控制能力。
# 1.10 主板
每一台 PC 中,都有一个主板,通过地址总线,数据总线,控制总线将核心器件和主要器件进行相连
# 1.11 接口卡
计算机系统中,所有可用程序控制其工作的设备,必须受到 CPU 控制,CPU 对外部设备都不能直接控制,比如显示器,音响,打印机等,直接控制这些设备进行工作的是 插在扩展插槽上的接口卡
,扩展插槽通过总线和 CPU 相连,接口卡也通过总线和 CPU 进行相连。CPU 通过总线向接口卡发送命令,接口卡根据 CPU 的命令控制外设进行工作
# 1.12 各类存储器芯片
一个 PC 中装有多个存储器芯片,从读写属性中分为
- RAM(随机存储器):必须带电存储,关机后存储的内容丢失
- 第一种:存放 CPU 和绝大部分程序和数据,主随机存储器一般由两个位置上的 RAM 组成,装在主板上的 RAM 和装在扩展槽上的 RAM;
- 第二种:接口卡上的 RAM,某些接口需要对大批量数据,数据数据进行暂时存储,在其上安装 RAM,最典型的就是显卡上的 RAM,称之为 显存 ,将要写入的内容写入显存中,显示卡随时将显存的数据在显示器上输出。
- ROM(只读存储器):只能读取,不能写入,关机之后内容不丢失
- 装有 BIOS(Basic Input/Output System,基本输入/输出系统)的 ROM,BIOS 是主板和各类接口卡(如显卡,网卡等)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入和输出。例如:主板的 ROM 中存储的主板的 BIOS(系统BIOS),显卡上存储着显卡的 BIOS,网卡上安装网卡的 BIOS。
# 1.13 内存地址空间
上述的那些存储器,在物理上是独立的器件,但是一些两点比较相同
- 都和 CPU 总线进行相连
- CPU 对它进行读写时候都是通过控制线发出内存读写命令
在上图中,所有的物理存储器被看作一个有若干个存储单元组成的 逻辑存储器
,每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间,CPU 在这段地址空间读写数据,实际上就是在相对应的物理存储器上读写数据。
# 1.14 总结
总结:
- 汇编指令是机器指令的助记符,同机器指令一一对应
- 每一种 CPU 都有自己的汇编指令集
- CPU 可以直接使用的信息在存储器中存放
- 在存储器中指令和数据没有任何区别,都是二进制信息
- 存储单元从零开始顺序编号
- 一个存储单元可以存储8个bit,即8位二进制数
- 1Byte = 8bit 1KB = 1024B 1MB = 1024KB 1GB = 1024MB 类比:2^10 1KB 2^20 1MB 2^30 1GB
- 每一个 CPU 芯片都有许多管脚,这些管脚和总线进行相连,也可以说,这些管脚引出总线。CPU 引出3种总线的宽度标志这个 CPU 的不同方面的性能:
- 地址总线宽度决定了 CPU 的寻址能力
- 数据总线的宽度决定了 CPU 和其它器件进行数据传送时的一次数据传送量
- 控制总线宽度决定了 CPU 对系统中器件的控制能力
- 内存地址空间:使用汇编语言编程时候,必须从 CPU 的角度考虑问题,对 CPU 来说,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受 CPU 的寻址能力限制,这个逻辑 CPU 就是我们所说的内存地址空间
习题:
(1)1个 CPU 的寻址能力为 8KB,那么它的地址总线的宽度为 13 位。
答:8KB = 8*1024 Byte = 2^3^ ✖ 2^10^ = 2^13^ Byte 所以13位。
(2)1KB 的存储器有 1024 个存储单元,存储单元的编号从 0 到 1023 。
答:一个存储字长为 8bit,1KB = 1024 Byte = 1024 * 8 bit 有1024 存储单元。
(3)1KB 的存储器可以存储 8192(2^13^) 个bit, 1024 个 Byte。
答:1KB = 1024 Byte = 1024 * 8 bit 。
(4)1GB 是 1073741824 (2^30^) 个 Byte、1MB 是 1048576(2^20) 个 Byte、1KB 是 **1024(2^10^)**个 Byte。
(5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64 (KB)、 1 (MB)、 16 (MB)、 4 (GB)。
答:16根:2^16^ = 2^10^ * 2^6^ 。2^10^ 是 1024 就是 1KB。然后乘 2^6^ = 64 就是 64 KB,后面依此类推。
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为:
1 (B)、 1 (B)、 2 (B)、 2 (B)、 4 (B)。
答:8根就是 8bit = 1B ,后面依此类推。
(7)从内存中读取 1024 字节的数据,8086 至少要读 512 次,80386 至少要读 256 次。
答:8086 数据总线宽度为16 1024 * 8 /16 = 512 80386 数据总线宽度为32 1024 * 8 /32 = 256
(8)在存储器中,数据和程序以 二进制 形式存放。