目录
王爽的《汇编语言》是国内计算机领域少有的经典教材,教材设计脉络清晰、深入简出、通俗易懂,是汇编语言学习佳作。
在此,我将以问答方式,记录我学习这本教材的理解和收获,希望与大家共勉,本人水平有限,如有不妥之处希望大家及时指出。
前言
Q:不同CPU的汇编语言是相同的吗?
CPU不同,使用的汇编指令集是不同的,因此可以说——“不同CPU汇编语言不同”。
Q:教学中使用什么CPU,为什么?
教学一般使用8086CPU,因为它简洁、通用,只要是和Intel兼容CPU,都能以8086的方式工作
前言中提到了本书的核心教学思想————知识屏蔽
- 知识屏蔽指的是对教学内容进行最小化分割,让所讲的知识点是当前唯一需要学习理解的,不需要用到之后才学到的内容,以达到线性学习的效果。
- 本书的课程内容经过作者精心设计,打破了传统教材的教学顺序,极大保证了学习者能够循序渐进地掌握书上的内容。
TIPS:我们在学习本书时要按照课程设计的顺序进行,按要求通过每一个检测点,完成每一个实验后,再进行后续课程的学习。
第一章 基础知识
推荐课程:
- 对PC机及CPU的物理结构和编程结构的全面研究——《微机原理与接口》
- 对于计算机一般的结构、功能、性能的研究——《组成原理》
1.1 机器语言
Q:机器指令、机器语言是什么?
- 机器指令:是指机器可以正确执行的命令,对计算机来说就是一列二进制数,用一列高低电平来表示。
- 机器语言:是机器指令的集合。
CPU不同,使其工作的指令集不同。也就是说相同的二进制序列对不同的CPU来说,可能代表了不同的命令。
Q:机器语言具有什么特点?
机器语言对人来说难以理解,用机器语言编写的程序阅读困难,很难进行排错。
1.2汇编语言的产生
Q:汇编语言解决的问题
将机器指令转变成程序员容易理解的汇编指令,便于阅读和记忆。
Q:如何让计算机执行汇编指令程序?
汇编指令 | ——> | 编译器 | ——> | 机器码 | ——> | 计算机 |
---|---|---|---|---|---|---|
mov ax,bx | 1000100111011000 | 执行 |
1.3 汇编语言的组成
Q:汇编语言由哪几类指令组成?
- 汇编指令:机器指令的助记符,每个汇编指令有对应的机器指令,是汇编语言的核心部分。
- 伪指令:没有对应的机器指令,仅供编译器执行
- 其他符号:如:+、-、*、/等,由编译器识别,无对应的机器码。
1.4 存储器
一般指内存,内存向CPU直接提供需要处理的指令和数据。
1.5 指令和数据
Q:指令和数据的本质是什么?
在内存或硬盘上,指令和数据本质上都是二进制信息。
1.6 存储单元
Q:存储器的基本单元是什么?
存储设备的基本单位是存储单元。存储器被划分成若干存储单元,存储单元以字节为单位。1存储单元=1字节=8二进制位。
Q:常用存储单位有哪些?
1KB=1024B、1MB=1024KB、1GB=1024MB、1TB=1024GB
1.7 CPU对存储器的读写
Q:CPU如何寻找某个存储单元?
存储单元从零开始顺序编号,这些编号可以看做存储单元在存储器中的地址。CPU通过存储单元的编号或者说地址找到相应的存储单元。
Q:CPU与其他部件交互需要哪些信息?
- 地址信息:存储单元的地址。
- 控制信息:器件的选择,读或写的命令。
- 数据信息:读/写的数据。
Q:CPU与其他部件是如何进行信息交互的?
电子计算机中传输、处理的信息都是电信号,电信号通过导线传输。专门连接CPU和其他芯片的导线,通常称为总线。从逻辑上分为地址总线、控制总线和数据总线。
Q:CPU对存储器进行读写操作时大致的交互过程是怎样的?
例如:CPU要从3号存储单元中读取数据的过程(如下图)
- CPU通过地址总线将地址信息“3”发出。
- CPU通过控制总线发出内存读命令,选中并通知存储器芯片,将要从中读取数据。
- 存储器将3号单元中的数据通过数据总线送入CPU。
写操作与此过程类似,通过地址总线发送需要写入的地址,通过控制总线发出内存写命令,通过数据总线送入需要写入的数据。
1.8 地址总线
1.9 数据总线
1.10 控制总线
Q:地址总线、数据总线、控制总线的宽度分别代表什么含义?
- 地址总线的宽度表示CPU的寻址能力,地址总线能表示多少个不同的信息,就表示CPU能对多少个不同的存储单元进行寻址。
CPU有N条地址总线,能寻址 2 N 2^N 2N个存储单元
- 数据总线的宽度,决定CPU和存储器之间一次能传输数据的大小。
CPU有N条数据总线,一次最多能传输N位2进制数据。
- 8088CPU总线宽度为8,一次最大可以传输一个字节(8位)的数据;
- 8086CPU总线宽度为16,一次最大可以传输两个字节(16位)的数据。
- 控制总线宽度决定CPU可以表示的命令数,决定CPU对其他部件的控制能力。
CPU有N条控制总线,表示CPU发出的命令最多有 2 N 2^N 2N种。
1.11 内存地址空间
Q:内存地址空间是什么?
内存地址空间指CPU可以寻址到的内存单元的集合。
1.12 主板
Q:主板的作用
主板通过总线将主板上的CPU、存储器、外围芯片组、扩展插槽等连接起来。
扩展插槽一般插有RAM内存条、网卡、显卡、声卡等。
1.13 接口卡
Q:CPU与外部设备如何交互?
CPU通过总线连接接口卡,通过控制接口卡间接控制外部设备。
1.14 各类存储器芯片
Q:存储器有哪些分类?
-
按照存储器的读写属性分类:
- 随机存储器RAM:断电后其中的数据自动清空。
- 只读存储器ROM
-
按照存储器的功能和连接分类:
- 随机存储器:板载的RAM,扩展插槽的RAM
- 装有BIOS的ROM:主板、显卡、网卡
- 接口卡上的RAM:显存等
1.15 内存地址空间
Q:CPU如何管理本计算机上的所有存储器?
CPU将连接在主板上的所有存储器都看成CPU管理的内存空间的一部分,不同的存储器对应的地址不同。往不同的地址中写入数据,等同于往不同的存储器中写入数据,有不同的效果。