- 和其他语言不一样,汇编语言没有统一的编译器,汇编语言的格式随着编译的不同而不同,因此了解什么是汇编语言是学习汇编语言的第一道门槛。
- 首先,我们需要知道汇编语言为什么出现,为了回答这个问题,我们就不得不聊一聊处理器指令。
处理器指令:
在计算机内部,处理器基于芯片制造商内置于芯片内的二进制代码来处理数据,这些代码定义了处理器操作数据的行为。这些代码通常被叫做指令编码,不同的处理器,指令编码也一般不一样。
指令编码:
处理器通过不断读取内存中的指令编码来运行,指令编码包含一个或多个字节的数据用来完成不同的任务,指令编码用到的数据也被处理器读取到内存,本质上指令编码和相关的数据对处理器来说没有什么不同。
为了区分指令编码和数据,我们用指针来区分,指令指针指向要操作的对象,数据指针指向相关的数据。
指令指针总是指向当前要执行的指令。
数据指针用来标识当前内存中程序数据开始的地方,这个区域也称为栈。
指令编码的格式:
这里我们以当前使用比较广泛的IA-32指令编码来说明,指令编码主要包含4个部分:
-
指令前缀(可选)
-
操作码
-
修饰符(可选)
-
数据 (可选)
操作码:
从上面可以看出指令编码中唯一必须的元素就是操作码,他的主要功能是用来完成不同的任务。