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就完了
继续干活