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就完了
繼續幹活