注册 登录
编程论坛 汇编论坛

请高手详解下这段汇编宏代码

发布于 2010-05-05 18:09, 851 次点击
L MACRO sText:REQ            
    LOCAL str, chr, flag, cchr      
        cchr TEXTEQU <>              
        str  TEXTEQU <>              
        flag TEXTEQU <.>            
        FORC chr, <&sText>            
            IFIDN flag, <\>     
                IFIDN <&chr>, <\>           
                    cchr TEXTEQU <"\">      
                ENDIF
                IFIDN <&chr>, <|>           
                    cchr TEXTEQU <"!!">   
                ENDIF
                IFIDN <&chr>, <n>            
                    cchr TEXTEQU <13,10>
                ENDIF
                IFIDN <&chr>, <0>           
                    cchr TEXTEQU <0>
                ENDIF
                flag TEXTEQU <.>
            ELSE               
                IFIDN <&chr>, <\>           
                    flag TEXTEQU <\>
                    cchr TEXTEQU <>
                ELSE                        
                    cchr CATSTR <">, <chr>, <">
                ENDIF
            ENDIF
            IFDIF str, <>                  
                IFDIF flag, <\>
                    str CATSTR str, <,>
                ENDIF
            ENDIF
            IFDIF cchr, <>                  
                str CATSTR str, &cchr
            ENDIF
        ENDM
        EXITM str
    ENDM
我的水平很菜,请尽可能详细一些 ,尤其是其中的比如FORC这个循环展开后是什么样子,<&sText>中&符号的作用?
4 回复
#2
自欺欺人2010-05-06 13:01
我晕……
#3
ONEPROBLEM2010-05-07 07:48
我的看法是,宏代码往往和子程序相似

但我不知道这段代码要实现什么功能?
#4
swp1601082010-05-07 09:33
就是定义一个字符串而已 汇编不能直接使用字符串 用这个宏就可以了 比如 sText("ok\n")
遇到\n 就定义成assic里的13和10
其他的类似
#5
2010-05-09 18:24
以下是引用swp160108在2010-5-7 09:33:35的发言:

就是定义一个字符串而已 汇编不能直接使用字符串 用这个宏就可以了 比如 sText("ok\n")
遇到\n 就定义成assic里的13和10
其他的类似
感谢解答,我问了许多人,都不懂,不过要是能再详细点就好了
1