当前位置: 网学 > 编程文档 > 汇编语言 > 正文

高级汇编语言技术

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/18
下载{$ArticleTitle}原创论文样式
bsp;       (重复块)
    ENDM
其中表达式的值用来确定重复块的重复次数,表达式中如包含外部或未定义的项则汇编指示出错.
    重复伪操作并不一定要在宏定义体内,例如:
X=0
       REPT   10
X=X+1
       DB    X
       ENDM
则汇编后产生
  +   DB    1
  +   DB    2
  +   DB    3
    
  +   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的内容存入堆栈.
宏定义:
   PUSH_TAB    MACRO  K
               PUSH    TAB+K
               ENDM
宏调用:
    I=0
             REPT    17
             PUSH_TAB  % I
    I=I+1
             ENDM
要求建立一个100D字的数组,其中每个字的内容是下一个字的地址,而最后一个字的内容是第一个字的地址.
ARRAY     LABEL   WORD
           REPT    99
           DW       content2
           ENDM
           DW       ARRAY
  2.不定重复伪操作
    (1)IRP伪操作
格式是:
     IRP   dummy,<argument list>
          (重复块)
     ENDM
汇编程序把重复块的代码重复几次,每次重复把重复块中的哑元用自变量表中的一项来取代,下一次取代下一项,重复次数由自变量表中的自变量个数来确定.自变量表必须用尖括号括起,它可以是常数,符号,字符串等.
例1:
    IRP    X,<1,2,3,4,5,6,7,8,9,10>
    DB    X
    ENDM
汇编后得:
  +     DB    1
  +     DB    2
      
  +     DB    10
例2:
     IRP    REG,<AX,BX,CX,DX>
     PUSH   REG
     ENDM
汇编后得:
    +    PUSH    AX
    +    PUSH    B

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号