引言

汇编语言是直接在硬件之上互作的编程语言

学会用汇编的思维去使用C语言

比汇编更底层的 –> 机器语言

【进制转化】【可以再去学一下】

【王爽的汇编语言】

寄存器

1
2
3
简单讲是CPU中可以存储数据的器件,一个CPU中有多个寄存
AX
BX
1
以后还会讲咯

程序–>汇编指令–>编译器–>机器码

汇编语言和机器指令是一一调用的

汇编语言的组成

1.汇编语言有3类组成:

1
2
3
1.汇编指令【机器码的助记符】
2.伪指令【由编译器执行】
3.其他符号【由编译器识别】

2.汇编语言的核心是汇编指令,它决定了汇编语言的特性

【编码的奥秘】这本书推荐看看。

储存器

1.CPU是计算机的核心部件,它控制整个计算机的运作并进行运算,要想让一个CPU互作,就必须向它提供指令和数据

2.指令和数据在存储器中存放,也就是平时说的内存

3.在一台PC中的内存的作用仅次于CPU

4.离开了内存,性能在好的CPU也无法互作

5.磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被cpu使用

指令和数据

1.指令和数据是应用上的概念

2.在内存或磁盘上,指令和数据没有任何区别,都是二进制信息

3.二进制信息:–>【进制转化】

1
2
3
4
1000100111011000  ==>转成Hex
-->89D8H(数据)
1000100111011000
-->MOV AX,BX(程序)

存储单元

1.储存区被划分为若干个存储单元,每个存储单元从0开始顺序编号

1
比如:一个储存区有128个存储单元,那么编号从0~127

2.对于大容量的储存区一般还用

1
2
3
4
KB = 1024B
MB = 1024KB
GB = 1024MB
TB = 1024GB

3.磁盘的容量单位同内存的一样,实际上以上单位是微机中常用的计量单位

CPU对储存区的读写

1.CPU要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行三类信息的交互:

1
2
3
1.存储单元的地址(地址信息)
2.器件的选择,读或写命令(控制信息)
3.读或写的数据(数据信息)

CPU对储存区的读写

1.那么CPU是通过什么将地址,数据和控制信息传递到存储芯片的呢?

1
电子计算能处理,传递的信息都是电信号,电信号当然要用导线传送

2.在计算机中专门有连接CPU和其他芯片的导线【称为总线】

1
2
3
4
5
6
7
8
9
10
11
12
在物理上:一根根导线的集合;
逻辑上划分为:
地址总线
数据总线
控制总线

通过哪条线过来的数据就当作某来算
就像上面的:
1000100111011000 ==>转成Hex
-->89D8H(数据) 【通过数据总线】
1000100111011000
-->MOV AX,BX(程序) 【通过控制总线】

image-20230404232205006

3.CPU是如何进行读和写的?

1
2
3
4
5
首先通过地址总线,找到相对应的地址。
然后通过控制总线,传入要读或者写的命令
最后通过数据总线进行数据上的传递
如果是读,就是从内存上的该地址通过数据总线把内容传递给CPU
写,就是在CPU上通过数据总线找到该地址,写入内存中

对于8086CPU,下面的机器码能完成从三号单元读数据:

1
2
3
机器码:101000000000001100000000
含义:从三号单元读取数据送入寄存器AX
CPU接受这条机器码后将完成上面所述的读写互作

地址总线

1.CPU是通过地址总线来指定存储单元的

2.地址总线上能传送多少个不同的信息,CPU就可以堆叠多少个存储单元进行寻址

3.一个CPU有N根地址总线,则可以说整个CPU的地址总线的宽度为N

4.这样的CPU最多可以寻找2的N次方个内存单元

5.地址是从下面往上面读

image-20230405103334221

这样读出来的是1011【前面的补上0】

数据总线

1.CPU与内存或其他器件之前的数据传送是通过数据总线来进行的

2.数据总线的宽度决定了CPU和外界数据传送速度

1
宽度越高,一次传入的数据就越多。

控制总线

1.CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是一个总称,控制总线是一些不同的控制线的集合

2.有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制

3.所以,控制总线的宽度决定 看CPU对外部器件的控制能力

1
控制总线上发送的控制信息

4.前面所讲的内存读或写的命令是由几根控制线综合发出的

1
2
1.其中由一根名为读信号输出控制线负责由CPU向外传送读信号,CPU向该控制线上输出低电平表示将要读取数据
2.有一根名为写信号输出控制线负责又CPU向外传送写信号

小结

1.汇编指令是机器指令的助记符,同机器指令一一对应

2.每种CPU都有自己的汇编指令集

3.CPU可以直接使用的信息在存储器中存放

4.在存储器中指令和数据没有任何区别都是二进制信息

5.存储单元从零开始顺序编号

6.一个存储单元可以存储8个bit,即8位二进制数。

7.每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出三种总线的宽度标志了这个CPU不同方面的性能

1
2
3
1.地址总线的宽度决定了CPU的寻址能力;
2.数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量;
3.控制总线宽度决定了CPU对系同种其他器件的控制能力

8.在汇编课程中,我们从功能的角度介绍了这三类中线,对实际的连接情况不做讨论。

内存地址空间(概述)

1.上面是内存地址空间?

1
一个CPU的地址线宽度为10,那么可以寻址1024个内存单元,这1024可寻到的内存单元就构成了这个CPU的内存地址空间

2.主板

1
2
1.在每一台PC机中,都有一个主板,主板上有核心器件和一些主要器件
2.这些器件通过总线(地址,数据,控制)相连接

3.接口卡

1
2
1.计算机系统中,所有可用程序控制其互作的设备,必修收到CPU的控制
2.CPU对外部设备不能直接控制。直接控制这些设备进行互作的是插在扩展插槽上的接口卡

4.各类储存区芯片

1
2
3
4
5
6
7
8
9
10
1.从读写属性上看分为2类:
随机存储器(RAM)【比如内存】和只读存储器(ROM)

2.从功能和连接上分类:
随机存储器RAM
装有BIOS的ROM
BIOS:基本输入输出系统
BIOS:是由主板和各类接口卡(比如:显卡,网卡...)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。在主板和某些接口卡上插由存储相应的BIOS的ROM
接口上的RAM
PC机中各类存储器的逻辑相连接情况

image-20230405125056876

内存地址空间

1.上述的拿下存储器在物理上是独立的器件

2.但是它们在一下俩点上是相同的:

1
2
1.都和CPU的总线相连
2.CPU对他们进行读或写的时候都通过控制线发出内存读写命令

3.将各类存储器看作一个逻辑存储器:

1
2
3
4
5
1.所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器;
2.每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间;
3.CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据

每一个PC的内存地址空间都是不一样的

image-20230405125649612

内存地址空间

1
2
3
1.最终运行的程序都是CPU,我们用汇编编程的时候,必须要从CPU角度考虑问题
2.核心思维
3.对CPU来讲,系统中的所有存储器中的存储单元都是处于一个统一的逻辑存储器中,它的容量受到CPU寻址能力的限制。这个逻辑存储器即是我们所说的内存地址空间