ITEEDU

9.5.2 条件汇编伪指令的举例

例9.14 编写一个可用DOS或BIOS功能调用输入字符的宏定义。

解:

方法1:使用条件汇编伪指令IF

INPUT MACRO

IF DOS ;当符号DOS不为0时,则使用DOS的功能调用 

MOV AH, 1H

INT 21H

ELSE ;否则,将使用BIOS的功能调用 

MOV AH, 10H

INT 16H

ENDIF

ENDM

在引用宏INPUT时,汇编程序会根据DOS是否为0来生成调用不同输入功能的程序段。

方法2:使用条件汇编伪指令IFDEF

INPUT MACRO

IFDEF DOS ;当定义了DOS,则使用DOS的功能调用 

MOV AH, 1H

INT 21H

ELSE ;否则,将使用BIOS的功能调用 

MOV AH, 10H

INT 16H

ENDIF

ENDM

在引用宏INPUT时,汇编程序会根据符号DOS是否已定义来生成调用不同输入功能的程序段。

例9.15 编写一个可用功能调用输入字符的宏定义。

解:

READCH MACRO char

MOV AH, 1H

INT 21H ;接受一个字符,并存入AL中 

IFNB  ;若参数char有实参与之对应 
IFDIF , ? ;若参数char≠AL,则把所输入字符保存到实参中 
MOV char, AL
ENDIF
ENDIF
ENDM