MASM 有许多循环伪指令用于生成重复的语句块:WHILE、REPEAT、FOR 和 FORC。与 LOOP 指令不同,这些伪指令只在汇编时起作用,并使用常量值作为循环条件和计数器:
WHILE 伪指令根据一个布尔表达式来重复语句块。
REPEAT 伪指令根据计数器的值来重复语句块。
FOR 伪指令通过遍历符号列表来重复语句块。
FORC 伪指令通过遍历字符串来重复语句块。
WHILE 伪指令
WHILE 伪指令重复一个语句块,直到特定的常量表达式为真。其语法如下:
WHILE constExpression
statements
ENDM
下面的代码展示了如何在 1 到 F000 0000h 之间生成斐波那契 (Fibonacci) 数,作为汇编时常数序列:
.data
val1 = 1
val2 = 1
DWORD val1 ;前两个值
DWORD val2
val3 = val1 + val2
WHILE val3 LT 0F0000000h
DWORD val3
val1 = val2
val2 = val3
val3 = val1 + val2
ENDM
REEPEAT 伪指令
在汇编时,REPEAT 伪指令将一个语句块重复固定次数。其语法如下:
REPEAT constExpression
statements
ENDM
constExpression 是一个无符号整数常量表达式