解:
方法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是否已定义来生成调用不同输入功能的程序段。
解:
READCH MACRO char MOV AH, 1H INT 21H ;接受一个字符,并存入AL中 IFNB;若参数char有实参与之对应 IFDIF , ? ;若参数char≠AL,则把所输入字符保存到实参中 MOV char, AL ENDIF ENDIF ENDM