|
|
|
→ 宏的扩充 → 循环伪指令FOR |
|
循环伪指令FOR与9.4.2节中伪指令IRP在功能上完全一致,设置该伪指令的原因也是为了保证与先前版本的兼容性。
伪指令FOR的使用方式如下:
|
FOR |
parameter[:REQ|:=<default>], <argument [, argument]...> | |
| 语句序列 | ;被重复的汇编语言语句 | |
| ENDM | ||
其中各参数的说明如下:
|
parameter |
一个合法的标识符,它依次取后面参数表中的值。在指令序列中,该变量的每次出现都用其值所替换; |
| :REQ | 说明该变量的取值不能为空; |
| :=<default> | 指定该变量的缺省值,若后面的参数表缺省某个参数(用连续的逗号),这时,该循环变量将取其缺省值; |
| Argument | 参数表中可含有文本、符号、字符串或数值常量,每个参数之间要用逗号分割。 |
例如:
|
FOR |
data:=<?>, <"123", , 21, 0> |
| DB data | |
| ENDM | |
| …… | |
|
FOR |
reg:REQ, <ax, bx, dx> |
| push reg | |
| ENDM |
该语句在宏展开时,将得到下列语句:
DB "123"
DB ?
DB 21
DB 0
……
push ax
push bx
push dx
循环伪指令FOR与9.4.3节中伪指令IRPC在功能上完全一致,它也是为保证与先前版本的兼容性而设置的。
伪指令FORC的使用方式如下:
|
FORC |
parameter, <string> | |
| 语句序列 | ;被重复的汇编语言语句 | |
| ENDM | ||
其中各参数的说明如下:
| parameter: | 一个合法的标识符,它依次取字符串中的每个字符。在语句序列中,该变量的每次出现都用其值所替换; |
| String: | 一个字符串或被定义为字符串的符号名,字符串中的空格也被算为一个字符。括号"<"、">"是必不可少的。 |
例如:
|
FORC |
data, <1?3> DB data ENDM |
| …… | |
|
FORC |
reg, <abd> push reg&x ENDM |
该语句在宏展开时,将得到下列语句:
DB 1
DB ?
DB 3
……
push ax
push bx
push dx