汇编语言IF、ELSE和DENDIF伪指令

广告位

IF 伪指令的后面必须跟一个常量布尔表达式。该表达式可以包含整数常量、符号常量或者常量宏实参,但不能包含寄存器…

IF 伪指令的后面必须跟一个常量布尔表达式。该表达式可以包含整数常量、符号常量或者常量宏实参,但不能包含寄存器或变量名。仅适用于 IF 和 ENDIF 的语法格式如下:

IF expression
    statement-list
ENDIF

另一种格式则适用于 IF、ELSE 和 ENDIF:

IF expression
    statement-list
ELSE
    statement-list
ENDIF

【示例】宏 mGotoxyConst 利用 LT 和 GT 运算符对传递给宏的参数进行范围检查。实参 X 和 Y 必须为常数。还有一个常数符号 ERRS 对发现的错误进行计数。根据 X 的值,可以将 ERRS 设置为 1。根据 Y 的值,可以将 ERRS 加 1。最后,如果 ERRS 大于零,EXITM 伪指令退岀宏:

  ;-------------------------------------  mGotoxyConst MACRO X:REQ, Y:REQ  ;  ;将光标位置设置在 X 列 Y 行。  ;要求 X 和 Y 的坐标为常量表达式  ;其范围为 0 ≤ X < 80, 0 ≤ Y < 25。  ;-------------------------------------      LOCAL ERRS               ;;门局部常量      ERRS = 0      IF (X LT 0) OR (X GT 79)          ECHO Warning: First argument to mGotoxy (X) is out of range.          ECHO ******************************************************          ERRS = 1      ENDIF      IF (Y LT 0) OR (Y GT 24)          ECHO Warning: Second argument to mGotoxy (Y) is out of range.          ECHO ******************************************************          ERRS = ERRS + 1      ENDIF      IF ERRS GT 0                 ;;若发现错误,          EXITM                    ;;退出宏      ENCIF      push edx      mov dh,Y      mov dl,X      call Gotoxy      pop edx  ENDM

关于作者: 汇编语言

为您推荐

广告位

发表评论