汇编语言程序设计 贺利坚主讲_哔哩哔哩_bilibili
image.png

早期的程序设计均使用机器语言。程序员们将用0 、1 数字编成的程序代码打在纸带或卡片上, l 打孔, 0 不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。 image.png

汇编语言的主体是汇编指令。汇编指令和机器指令的差别在千指令的表示方法上。汇编指令是机器指令便千记忆的书写格式。
image.png

汇编语言的组成

汇编语言发展至今,有以下3 类指令组成。

  • (1) 汇编指令:机器码的助记符,有对应的机器码。
  • (2) 伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
  • (3) 其他符号:如+、-、*、/等,由编译器识别,没有对应的机器码。

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

存储器

CPU 是计算机的核心部件,它控制整个计算机的运作并进行运算。要想让一个CPU工作,就必须向它提供指令和数据。指令和数据在存储器中存放,也就是我们平时所说的内存。在一台PC 机中内存的作用仅次千CPU 。离开了内存, 性能再好的CPU 也无法工作。这就像再聪明的大脑,没有了记忆也无法进行思考。磁盘不同千内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU 使用。要灵活地利用汇编语言编程,我们首先要了解CPU 是如何从内存中读取信息,以及向内存中写入信息的。

指令和数据

指令和数据是应用上的概念。在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。CPU 在工作的时候把有的信息看作指令,有的信息看作数据,为同样的信息赋予了不同的意义。

就像围棋的棋子,在棋盒里的时候没有任何区别,在对弈的时候就有了不同的意义。

image.png

存储单元

存储器被划分成若干个存储单元,每个存储单元从0开始顺序编号,例如一个存储器有128 个存储单元,编号从0 ~ 127, 如图1.2 所示。
image.png
电子计算机的最小信息单位是bit(音译为比特),也就是一个二进制位。8 个bit 组成一个Byte , 也就是通常讲的一个字节。微型机存储器的存储单元可以存储一个Byte, 即8个二进制位。一个存储器有128 个存储单元,它可以存储128 个Byte 。微机存储器的容量是以字节为最小单位来计算的。对千拥有128 个存储单元的存储器,我们可以说,它的容量是128 个字节。
对于大容量的存储器一般还用以下单位来计量容量(以下用B来代表Byte):
1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB
磁盘的容量单位同内存的一样,实际上以上单位是微机中常用的计量单位。

CPU 对存储器的读写

CPU 要从内存中读数据, 首先要指定存储单元的地址。也就是说它要先确定它要读取哪一个存储单元中的数据。就像在一条街上找人,先要确定他住在哪个房子里。另外,在一台微机中,不只有存储器这一种器件。CPU 在读写数据时还要指明,它要对哪一个器件进行操作,进行哪种操作,是从中读出数据,还是向里面写入数据。
可见, CPU 要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行下面3 类信息的交互。

  • 存储单元的地址(地址信息);
  • 器件的选择,读或写的命令(控制信息);
  • 读或写的数据(数据信息)。

那么CPU 是通过什么将地址、数据和控制信息传到存储器芯片中的呢?

电子计算机能处理、传输的信息都是电信号,电信号当然要用导线传送。在计算机中专门有连接CPU 和其他芯片的导线,通常称为总线。总线从物理上来讲,就是一根根导线的集合。根据传送信息的不同,总线从逻辑上又分为3 类,地址总线控制总线数据总线

CPU从3号单元中读取数据的过程(见图1.3)如下。
image.png
(1) CPU 通过地址线将地址信息3 发出。
(2) C PU 通过控制线发出内存读命令,选中存储器芯片,并通知它,将要从中读取数据。
(3) 存储器将3 号单元中的数据8 通过数据线送入CPU 。

写操作与读操作的步骤相似。如向3号单元写入数据26 。
(1) CPU 通过地址线将地址信息3 发出。
(2) CPU 通过控制线发出内存写命令,选中存储器芯片,并通知它,要向其中写入数据。
(3) CPU 通过数据线将数据26 送入内存的3 号单元中。

地址总线

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