汇编语言个人学习笔记——第一章 基础知识

1.1

计算机语言分为三种:

1.高级语言(C语言,C++,python等等)

2.机器语言(计算机能够直接识别的机器码,如:1000100111011000)

3.汇编语言(将机器语言翻译为类似英文)

1.2

汇编语言的产生:

汇编语言的主体是汇编指令;

 汇编指令和机器指令的差别在于指令的表示方法上,汇编指令是机器指令便于记忆的书写格式。

 汇编指令是机器指令的助记符。

例如:

机器指令:1000100111011000

操作:将寄存器BX的内容送到AX中;

汇编指令:MOV AX,BX;

1.3

寄存器:

      简单来说,寄存器可以理解为嵌入到CPU中可以存储数据的器件,一个CPU中有多个寄存器,AX是其中一个寄存器的代号,BX是另一个寄存器的代号。

        寄存器比高级缓存和二级缓存要低一级,更接近CPU。

程序编写运行的流程:

高级语言————>汇编指令————>编译器————>机器码————>计算机

理论上说,越高级的语言执行效率越低

汇编语言由以下3类组成:

1、汇编指令(机器码的助记符)

2、伪指令(由编译器执行)

3、其他符号(由编译器识别,例如,加减乘除)

1.4

存储器:

CPU是计算机的核心部件,它控制整个计算机的运作并进行运算,要想让一个CPU运作,就必须向它提供指令和数据。指令和数据在存储器中存放也就是平常所说的内存。

通俗的讲,指令是告诉CPU要怎么做,数据是告诉CPU哪些是被做的,哪些是做别的;

计算机任何一个部件拆开都有固定的存储器,包括显卡,网卡,BIOS(主板)。

在一台计算机中内存的作用仅次于CPU,离开了内存,性能再好的CPU也无法工作。

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

虚拟内存:如果内存不够,一些不怎么用的内存临时放到硬盘里,用到的时候再调到内存中,如果用到虚拟内存读东西会比较慢,因为CPU和内存的速度是比较快的,内存和硬盘的速度是比较慢的。

1.5

指令和数据:

指令和数据是应用上的概念,在内存或磁盘上指令和数据没有任何区别,都是二进制信息。

例如:

1000100111011000

可以看作16进制数据:89D8H(后面H代表hex,16进制)

也可以看也可以看作程序的指令,MOV AX,BX

1.6

存储单元:

存储器被划为若干个存储单元,每个存储单元从0开始顺序编号;

例如,一个存储器有128个存储单元,编号从0~127

注:存储器不只有内存,比如还有显存(显卡里有一个内存,称之为显存,显卡中有图形处理器GPU,将显存中的数据读取出来,直接映射到屏幕上)

对于大容量的存储器一般还用以下单位来计量容量:

1KB=1024Byte

1MB=1024KB

1GB=1024MB

1TB=1024GB

磁盘的容量单位同内存一样。

1.7

CPU对存储器的读写:

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

1、存储单元的地址(地址信息)

2、器件的选择,读或写命令(控制信息)

3、读或写的数据(数据信息)

电子计算机能处理、传输的信息都是电信号,电信号要用导线传送。

在计算机有专门连接CPU和其他芯片的导线,通常称为总线。

总线在物理上是一根根导线的集合;

在逻辑上划分为:

地址总线;

数据总线;

控制总线;

分别对应传输地址,传输数据,传输控制;

如图:

上图内存不单指内存条,还有显卡、网卡等内存。

如果一条机器码从地址总线传输过来,CPU会将机器码作为地址来处理,同理,如果从数据总线传输过来,CPU会将机器码作为数据来处理,控制总线也一样。

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

机器码:101000000000001100000000

含义:从3号单元读取数据送入寄存器AX中

1.8

地址总线:

CPU是通过地址总线来指定存储单元的。地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。

要达到64位的速度,首先要64位的CPU,其次还要有64位的操作系统,还要有64位的软件。

一个CPU有N个地址总线,则可以说CPU的总线宽度为N。

这样的CPU最多可以寻找2的N次方个内存单元。一个地址总线可以索引一个内存单元。

1.9

数据总线:

CPU与内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了CPU和外界的数据传输速度。

1.10

控制总线:

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

有多少种控制总线就对应着CPU对外部器件的多少种控制。

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

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

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

有一根名为写信号输出控制线负责由CPU向外传送写信号。

                                                              小结

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

2、每一种CPU都有自己的汇编指令集。

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

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

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

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

7、1B=8b,1KB=1024B, 1MB=1024KB, 1GB=1024MB

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

地址总线的宽度决定了CPU的寻址能力

数据总线的宽度决定了CPU与其他器件进行传送时的一次数据传送量。

控制总线的宽度决定了CPU对系统中其他器件的kong控制能力。

1.11

内存地址空间的概述:

一个CPU的地址总线宽度为10,那么可以寻址1024个内存单元,这1024个可寻到的内存单元就构成这个CPU的内存地址空间。首先需要介绍主板和接口卡。

1.12

主板:

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

1.13

接口卡:
计算机系统中,所有可用程序控制其工作的设备,必须受到CPU的控制。CPU对外部设备都不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展插槽上的接口卡,如显卡。

1.14

各类存储器芯片:

从读写性质上看,分为两类:

随机存储器(RAM)和只读存储器(ROM)

(断电之后,随机存储器中的数据会遗失)

只读存储器:

1、装有BIOS(Basic Input/Output System基础输入输出系统)的ROM。

(BIOS开机时检测CPU,内存等是否插好,打开计算机时第一个启动的程序)

注:如果一个计算机病毒可以刷到BIOS,杀毒软件就无法起作用,因为杀毒软件是加载到DOS时起作用的。

BIOS是由主板和各类接口卡(如显卡、网卡)厂商提供的软件系统,可以通过它利用该硬件设备进行最基础的输入输出。在主板和某些接口卡上插有存储相应BIOS的ROM。

功能和连接上分类:

随机存储器RAM

装有BIOS的ROM

接口卡上的RAM

PC机中各类逻辑存储器的连接情况如图:

内存地址空间:
上述那些存储器,在物理上是独立的器件,但是在以下两点上相同:

1、都和CPU的总线相连。

2、CPU对它们进行读或写的时候都通过控制线发出内存读写命令。

将各类存储器看作一个逻辑存储器的情况如图:

不同计算机的内存地址空间的分配情况是不同的。

1.15

内存地址空间:
最终运行程序的是CPU,我们用汇编编程的时候必须从CPU的角度考虑问题。

对CPU来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制,这个逻辑存储器就是我们所说的内存地址空间。

8086PC机内存地址空间分配的基本情况如图:

猜你喜欢

转载自blog.csdn.net/k17010/article/details/81096993