32 位模式下,MASM 包含了一些高级条件控制流伪指令(conditional control flow directives),这有助于简化编写条件语句。遗憾的是,这些伪指令不能用于 64 位模式。
对程序进行汇编之前,汇编器执行的是预处理步骤。在这个步骤中,汇编器要识别伪指令,如:.CODE、.DATA,以及一些用于条件控制流的伪指令。下表列出了这些伪指令。
伪指令 | 说明 |
---|---|
.BREAK | 生成代码终止 .WHILE 或 .REPEAT 块 |
.CONTINUE | 生成代码跳转到 .WHILE 或 .REPEAT 块的顶端 |
.ELSE | 当 .IF 条件不满足时,开始执行的语句块 |
.ELSEIF condition | 生成代码测试 condition,并执行其后的语句,直到碰到一个 .ENDIF 或另一个 .ELSEIF 伪指令 |
.ENDIF | 终止 .IF、.ELSE 或 .ELSEIF 伪指令后面的语句块 |
.ENDW | 终止 .WHILE 伪指令后面的语句块 |
.IF condition | 如果 condition 为真,则生成代码执行语句块 |
.REPEAT | 生成代码重复执行语句块,直到条件为真 |
.UNTIL condition | 生成代码重复执行 .REPEAT 和 .UNTIL 伪指令之间的语句块,直到 condition 为真 |
.UNTILCXZ | 生成代码重复执行 .REPEAT 和 .UNTILCXZ 伪指令之间的语句块,直到 CX 为零 |
.WHILE condition | 当 condition 为真时,生成代码执行 .WHILE 和 .ENDW 伪指令之间的语句块 |