基础知识

说到汇编语言的产生,首先要讲一下机器语言。机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。现在我们常用的PC机中,有一个芯片来完成上面所说的计算机的功能。这个芯片就是我们常说的CPU(中央处理单元 central processing unit),CPU是一种微处理器。以后我们提到的计算机是指由CPU和其他受CPU直接或间接控制的芯片、器件、设备组成的计算机系统,比如我们最常见的PC机。

每一种微处理器,由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。所以每一种微处理器都有自己的机器指令集,也就是机器语言。

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

但是计算机只能读懂机器指令,如何能读懂程序员的汇编指令呢?这时候需要一个能把汇编指令翻译成机器指令的程序,这样的程序我们称其为编译器。编译器把程序员写的汇编指令翻译成机器码,由计算机最终执行。

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

1.汇编指令:机器码的助记符,有对应的机器码。

2.伪指令:没有对应的机器码,由编译器执行,计算机并不执行。

3.其他符号:如+、-、*、/等,由编译器识别,没有对应的机器码。

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

要想让一个CPU工作,就必须向它提供指令和数据。指令和数据在存储器中存放,也就是我们平时说的内存,内存不同于磁盘,磁盘上的数据或程序如果不读到内存中,它就无法被CPU使用。

指令和数据是应用上的概念。在内存或者磁盘上,指令和数据没有任何区别,都是二进制信息。CPU在工作的时候把有的信息看作指令,有的信息看作程序,为同样的信息赋予了不同的意义。就像围棋的棋子,在棋盒里时没有任何区别,在对弈的时候就有了不同的意义。例如,内存中的二进制信息 1000100111011000,计算机可以把它看作大小为89D8H的数据来处理,也可以将其看作指令mov ax,bx来执行。

1000100111011000  ->89D8H      (数据)

1000100111011000  ->mov ax,bx (程序)

原文地址:https://www.cnblogs.com/yangguang-it/p/6684312.html