你的位置: 首页 > 通信技术 > 汇编语言

重复汇编

2016-10-23 10:23:35 | 人围观 | 评论:

   有时汇编语言程序需要连续地重复完全相同的或者几乎完全相同的一组代码,这时可使用重复汇编。
1  重复伪操作
其格式为 :
    REPT    表达式
      ...   ( 重复块 )
    ENDM
其中表达式的值用来确定重复块的重复次数 , 表达式中如包含外部或未定义的项则汇编指示出错,重复汇编指在汇编过程中,重复展开一段(基本)相同的语句,重复汇编没有名字,不能被调用,重复汇编常用在宏定义体中,也可以在一般汇编语句中使用
重复伪操作并不一定要在宏定义体内。
例如 :
X=0
       REPT   10
X=X+1
       DB    X
       ENDM
则汇编后产生

 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





标签:

相关内容推荐: