宏是程序设计的另一个基本概念,它是把一段程序代码用一个特定标识符(即:宏名)来表示。这样,在编写源程序时,程序员就可以直接使用该标识符来代替一段代码的编写,从而减少了重复代码的编写工作,也为减少错误,提高程序的可维护性提供了帮助。宏在高级语言(如:C/C++等)也有广泛的使用。
9.1 宏的定义和引用通常情况下,宏是用来代表一个具有特定功能的程序段,它只需在源程序中定义一次,但可在源程序中引用多次。只要在编写程序时需要,就可以直接使用它。
9.1.1 宏的定义在使用宏之前必须先定义宏,定义宏一般格式如下:
在书写宏定义时,必须遵照下列规定:
根据上述规定,我们提倡宏名尽可能不要与指令助忆符、伪指令相名,以免引起不必要的误会。
例9.1 定义一个把16位数据寄存器压栈的宏。
例9.2定义二个字存储变量相加的宏。
上述宏定义虽然能满足题目的要求,但由于在定义体中改变了寄存器AX的值,这就使宏的引用产生了一定的副作用。为了使寄存器AX的使用变得透明,可把该宏定义改成如下形式:
通过在宏定义的开始和结尾分别增加对所用寄存器的保护和恢复指令,就使得:对该宏的任意引用都不会产生任何副作用。