此系列文章是针对《汇编语言(第三版)》而写的读书笔记,分若干篇完成。
此系列文章中大部分为从书上摘抄的个人认为有用的内容,但摘抄的部分也会按照自己更容易理解的方式进行组织,其余少部分为个人的总结归纳,望有一定帮助。
第1章. 基础知识
1.1. 机器语言
无
1.2. 汇编语言的产生
无
1.3. 汇编语言的组成
无
1.4. 存储器
无
1.5. 指令和数据
无
1.6. 存储单元
无
1.7. CPU对存储器的读写
CPU要想进行数据的读写,必须和外部器件(标准的说法是芯片),进行下面3类信息的交互:
l 存储单元的地址(地址信息);
l 器件的选择,读或写的命令(控制信息);
l 读或写的数据(数据信息);
连接CPU和其他芯片的导线,称为总线。根据传送信息的不同,总线从逻辑上又分为3类:地址总线,控制总线和数据总线。
1.8. 地址总线
一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2N(2的N次方)个内存单元。
1.9. 数据总线
CPU与内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了CPU和外界的数据传送速度。8根数据总线一次可传送一个8位二进制数据(即一个字节),而16根数据总线则一次可传送两个字节(即一个字)。
注:8088 CPU的数据总线宽度为8,8086 CPU的数据总线宽度为16。
1.10. 控制总线
CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同控制线的集合。有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。所以,控制总线的宽度决定了CPU对外部器件的控制能力。
l 1.1 –1.10 小结
1) 汇编指令是机器指令的助记符,同机器指令一一对应;
2) 每一种CPU都有自己的汇编指令集;
3) CPU可以直接使用的信息在存储器中存放;
4) 在存储器中指令和数据没有任何区别,都是二进制信息;
5) 存储单元从零开始顺序编号;
6) 一个存储单元可以存储8个bit,即8位二进制数;
7) 每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出3中总线的宽度标志了这个CPU的不同方面的性能:
l 地址总线的宽度决定了CPU的寻址能力;
l 数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量;
l 控制总线的宽度决定了CPU对系统中其他器件的控制能力;
1.11. 内存地址空间(概述)
无
1.12. 主板
无
1.13. 接口卡
无
1.14. 各类存储器芯片
一台PC机中存在着多个存储器芯片,这些芯片根据读写属性可分为两类:
l RAM(随机存储器):可读可写,但必须带电存储,关机后存储的内容丢失;
l ROM(只读存储器):只能读取不能写入,关机后其中内容不丢失;
这些存储器从功能和连接上又可以分为以下几类:
l 主RAM(主随机存储器):一般指装在主板上的RAM和插在扩展插槽上的RAM;
l 接口卡上的RAM:最典型的是显示卡上的RAM,即显存。显卡随时将显存中的数据向显示器上输出。即我们将需要显示的内容写入显存,就会出现在显示器上;
l 用于存储BIOS的ROM:BIOS是由主板和各类接口卡(如显卡,网卡)厂商提供的软件系统,可以通过它来控制相应硬件设备的最基本的输入输出。如主板、显卡、网卡上的ROM分别用于存储它们各自的ROM;
下图展示了PC系统中各类存储器的逻辑连接情况:
图 1.1 – 1.7 PC机中各类存储器的逻辑连接
1.15. 内存地址空间
各个存储器在物理上是独立的器件,但是在以下两点上相同:
l 都和CPU的总线相连;
l CPU对他们进行读或写的时候都通过控制线发出内存读写命令;
这也就是说,CPU在控制他们的时候,把他们都当作内存来对待,把它们总的看做一个由若干存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间。
下图展示了CPU将系统中各类存储器看做一个逻辑存储器的情况:
图 1.2 - 1.8 将各类存储器看做一个逻辑存储器
在上图中,所有的物理存储器都被看作一个由若干存储单元组成的逻辑存储器,每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间。CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据。
内存地址空间的大小受CPU地址总线宽度的限制。8086 CPU的地址总线宽度为20,可以传送220个不同的地址信息(大小从0至220-1)。即可以定位220个内存单元,则8086 PC的内存地址空间大小为1MB。同理,80386 CPU的地址总线宽度为32,则内存地址空间最大为4GB。
不同的计算机系统的内存地址空间的分配情况是不同的,下图展示了8086 PC机内存地址空间分配的基本情况:
图 1.3 – 1.9 8086 PC机内存地址空间分配
内存地址空间:
对CPU来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器即是我们所说的内存地址空间。