经典汇编语言教程:9.6 宏的扩展——FOR/FORC

9.6 宏的扩展——FOR/FORC

循环伪指令FOR与9.4.2节中伪指令IRP在功能上完全一致,设置该伪指令的原因也是为了保证与先前版本的兼容性。

伪指令FOR的使用方式如下:

FORparameter[:REQ|:=<default>], <argument [, argument]...>
语句序列;被重复的汇编语言语句
ENDM

其中各参数的说明如下:

parameter

一个合法的标识符,它依次取后面参数表中的值。在指令序列中,该变量的每次出现都用其值所替换;
:REQ说明该变量的取值不能为空;
:=<default>指定该变量的缺省值,若后面的参数表缺省某个参数(用连续的逗号),这时,该循环变量将取其缺省值;
Argument参数表中可含有文本、符号、字符串或数值常量,每个参数之间要用逗号分割。

例如:

FORdata:=<?>, <"123", , 21, 0>
DB data
ENDM
……
FORreg:REQ, <ax, bx, dx>
push reg
ENDM

该语句在宏展开时,将得到下列语句:

DB "123"
DB ?
DB 21
DB 0
……
push ax
push bx
push dx

9.6.5循环伪指令FORC

循环伪指令FOR与9.4.3节中伪指令IRPC在功能上完全一致,它也是为保证与先前版本的兼容性而设置的。

伪指令FORC的使用方式如下:

FORCparameter, <string>
语句序列;被重复的汇编语言语句
ENDM

其中各参数的说明如下:

parameter:一个合法的标识符,它依次取字符串中的每个字符。在语句序列中,该变量的每次出现都用其值所替换;
String:一个字符串或被定义为字符串的符号名,字符串中的空格也被算为一个字符。括号"<"、">"是必不可少的。

例如:

FORCdata, <1?3>
DB data
ENDM
……

FORC

reg, <abd>
push reg&x
ENDM

该语句在宏展开时,将得到下列语句:

DB 1
DB ?
DB 3
……
push ax
push bx
push dx

上页:上一课 下页:下一课

经典汇编语言教程·相关目录

第1章 汇编语言的由来,数据类型第2章 CPU资源和存储器
第3章 操作数的寻址方式第4章 标识符和表达式
第5章 微机CPU的指令系统第6章 程序的基本结构
第7章 子程序和库第8章 输入输出和中断
第9章 宏第10章 应用程序设计
第11章 数值运算协处理器第12章 汇编语言和C语言
汇编语言重要附录Windows API函数大全
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号