本文章基于汇编语言(第4版)——王爽
基础知识
汇编语言是直接在硬件之上工作的编程语言。
1.1 机器语言
机器语言是机器指令的集合。机器指令就是一台机器可以识别并正确执行的命令。
电子计算机的机器指令是一列二进制数值,计算机将二进制数值转变为一列高低电平,使计算机的电子器件受到驱动,进行运算。
进行运算的的元器件就是CPU,CPU是一种微处理器。计算机是指受到CPU和其他CPU直接或间接控制的芯片、器件、设备组成的计算机系统,如:电脑、单片机。
因为每一种微处理器的硬件设计和内部结构不一样,就需要不一样的电平脉冲来控制。所以每一种微处理器都有自己的机器指令集(机器语言)。
1.2 汇编语言的产生
因为机器语言(一列二进制数值)太麻烦了,难于辨别和记忆,所以汇编语言产生了。
汇编语言的主体是汇编指令。
汇编指令和机器指令的差别在于表示方法上,汇编指令是机器指令便于记忆的书写格式。
如:
机器指令100010011101000 表示把寄存器BX的内容送到AX中。
汇编指令则写成 mov ax,bx。 这种写法便以辨别和记忆。
(寄存器,简单地讲是CPU中可以存储数据的器件,一个CPU中有多个寄存器。AX
是其中一个寄存器的代号,BX是另一个寄存器的代号。)
能够将汇编指令转换成机器指令的编译程序称为编译器
1.3 汇编语言的组成
汇编语言发展至今,有以下3类指令组成。
(1)汇编指令:机器码的助记符,有对应的机器码。
(2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
(3)其他符号:如+、-、*、/等,由编译器识别,没有对应的机器码。
汇编语言的核心是汇编指令,它决定了汇编语言的特性。
1.4 存储器
要想让一个CPU工作,就必须向它提供指令和数据。指令和数据在存储器中存放,也就是我们平时所说的内存。在一台PC机中内存的作用仅次于CPU。离开了内存,性能再好的CPU也无法工作。这就像再聪明的大脑,没有了记忆也无法进行思考。
磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU使用。要灵活地利用汇编语言编程,我们首先要了解CPU是如何从内存中读取信息,以及向内存中写入信息的。
CPU、内存、磁盘相互依赖,缺一不可。
CPU像一个大脑负责运算,内存像一个记忆负责供大脑使用,磁盘负责传递数据给内存。
1.5 指令和数据
指令和数据是应用上的概念。
在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。
CPU在工作的时候把有的信息看作指令,有的信息看作数据,为同样的信息赋予了不同的意义。就像围棋的棋子,在棋盒里的时候没有任何区别,在对弈的时候就有了不同的意义。
例如:内存中的二进制信息1000100111011000,
计算机可以把它看作大小为89D8H的数据来处理,
也可以将其看作指令mov ax,bx来执行。
1000100111011000->89D8H
(数据)
1000100111011000->mov ax,bx
(程序)
1.6 存储单元
存储器被划分成若干个存储单元,每个存储单元从0开始顺序编号,例如一个存储器有128个存储单元,编号从0~127。
我们知道电子计算机的最小信息单位是bit(音译为比特),也就是一个二进制位。
8个bit组成一个Byte,也就是通常讲的一个字节。
微型机存储器的存储单元可以存储一个Byte,即8个二进制位。
一个存储器有128个存储单元,它可以存储128个Byte。
微机存储器的容量是以字节为最小单位来计算的。
对于拥有128个存储单元的存储器,我们可以说,它的容量是128个字节。
对于大容量的存储器一般还用以下单位来计量容量(以下用B来代表Byte):
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
磁盘的容量单位同内存的一样,实际上以上单位是微机中常用的计量单位。