改进版CTEXT

    技术2022-05-19  24

    CTEXT MACRO y:VARARG  LOCAL symCONST segment IFIDNI <y>,<> sym db 0 ELSE sym db y,0 ENDIF CONST ends EXITM <OFFSET sym> ENDM

     

    一般来说,在MASM里这个可能够用了,可是。。。

    它不支持/r/n换行的东东呢

    好吧,我偷来了一个改进版。。。

    ctext macro text:VARARG         local tmp,pos,var         local j1,j2,txt,f1 .data    ife @InStr(1,<text>,</>) ;没有用到转义符号,不用任何转换       var db text,0         .code       exitm <offset var>    else       f1 SUBSTR <text>,1,1       txt SUBSTR <text>,2,@SizeStr(<text>)-2       var db 0       pos=1       :next1       j1 SUBSTR txt,pos,1       ifidn j1,</>          pos=pos+1          j2 SUBSTR txt,pos,1          ifidni j2 ,<n> ;/n             db 13,10          elseifidni j2,<txt> ;/txt             db 9          elseifidn j2,</> ;//             db '/'          elseifidn j2,<0> ;/0             db 0          endif       else          tmp textequ f1,j1,f1          db tmp ;;;       endif       pos=pos+1       if pos LE @SizeStr(<%txt>)          goto next1       endif       db 0 ;;;       .code       exitm< offset var+1>    endif endm _T     equ <ctext> CTEXT equ <ctext> SADD     equ <ctext>

     

    额,Ctrl+C、Ctrl+V就完了

    继续干活


    最新回复(0)