ITEEDU

9.6.6 转移伪指令GOTO

转移伪指令GOTO用于实现宏定义体内的转移功能,其使用方式如下:

GOTO 标号 

…

:标号 ;标号后不能写指令,但可写注释 

…
该伪指令的功能是使汇编程序转移到“标号”处汇编,它只能在宏定义MACRO、REPEAT、WHILE、FOR和FORC等语句块内使用,该标号也只在该语句块内有效。

9.6.7 宏扩充的举例

例9.17:编写一个给任意寄存器或存储单元清零的宏定义。

解:

Clear list : VARARG

FOR data:REQ, 
mov data, 0
ENDM
ENDM

有了上面的宏定义,下面的二个宏引用都是正确的,尽管宏引用时所带的参数个数是不同的。这正是参数属性VARARG的作用所在。

Clear?ax, bx

……

Clear?si, cl, MemVar, edx ;MemVar是内存变量,任意类型都可以 

这二个宏引用展开时所得到的指令如下:

mov ax, 0

mov bx, 0

……

mov si, 0

mov cl, 0

mov MemVar, 0

mov edx, 0