改進版CTEXT

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就完了

繼續幹活

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章