学到这里,突然对汇编与C预言的相似之处做一下比较:
8086的汇编是16位的,调用的是dos与bios的中断例程
intel的这本汇编是win32的,调用的是操作系统提供的API函数
但是我们直接去调用API函数编程,需要很了解API函数,对于初学者很难理解,所以作者编写了库文件Irvine32.lib,其中包含了许多常用的过程(调用API函数实现),然后把这些过程的原型(或者说是声明)放到Irvine32.inc文件中,这样我们调用Irvine32.lib中的过程之前需要用include伪指令把Irvine32.inc中的内容复制到.asm格式的源文件中,使得我们可以很方便的使用控制台的一些常用功能。
这一点与C语言很相似,C语言中讲述了大量的库文件.lib格式的,比如我们常用的printf与scanf函数就包含在这些库文件中,在使用printf与scanf函数之前我们需要用#include编译指令把stdio.h头文件中包含的有关函数声明复制到.c(.cpp)源文件中,这样我们想在控制台窗口中显示字符时就不需要编写大量的代码,大大简化了编写的效率。
Intel汇编语言程序设计的作者采用的就是这样一种思路,这样方便了程序的直接演示。
C语言中经常看到#define定义了一个字符常量,这很像win32汇编中的equ伪指令,都是在预处理阶段把字符替换成数字,预处理是在编译、连接之前对源文件中的代码数据进行处理的工作,为源文件的正常编译做准备,宏就是在预处理阶段进行展开的(源文件中调用宏的地方替换成指令),经过预处理后的源文件再经过编译生成机器可以识别的目标文件