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