1 DB 1
1 DB 2
1 DB 3
...
1 DB 10
例:
把字符 A 到 Z 的 ASCII 码填入数组 TABLE
CHAR=‘A
TABLE LABEL BYTE
REPT 26
DB CHAR
CHAR=CHAR+1
ENDM
例: 用宏定义及重复伪操作把 TAB, TAB+ 1, TAB+2 ,...,TAB+16 的内容存入堆栈 . 2. 不定重复伪操作
(1)IRP 伪操作
格式是 :
IRP 形参 ,< 自变量表 >
... ( 重复块 )
ENDM
汇编程序把重复块的代码重复几次 , 每次重复把重复块中的形参用自变量表中的一项来取代,下一次取代下一项 , 重复次数由自变量表中的自变量个数来确定。自变量表必须用尖括号括起 , 它可以是常数,符号,字符串等,不一定要定义在宏定义内。
例 :
IRP X,<1,2,3,4,5,6,7,8,9,10>
DB X
ENDM
汇编后得 :
1 DB 1
1 DB 2
...
1 DB 10
例 :
IRP REG,<AX,BX,CX,DX>
PUSH REG
ENDM
汇编后得 :
1 PUSH AX
1 PUSH BX
1 PUSH CX
1 PUSH DX
(2)IRPC 伪操作
格式是 :
IRPC 形参 , 字符串 ( 或 < 字符串 >)
... ( 重复块 )
ENDM
IRPC 和 IRP 类似 , 但自变量表必须是字符串 . 重复次数由字符串中的字符个数确定 , 每次重复用字符串中的下一个字符取代重复块中的形参 .
例 :
IRPC X,0 1 2 3 4 5 6 7
DB X+1
ENDM
汇编后得 :
1 DB 1
1 DB 2
...
1 DB 8
例 :
IRPC K,A B C D
PUSH K&X ENDM
全站搜索