UltraEdit+Masm--打造自己的彙編IDE

UltraEdit版本 16.0

一. 添加支持彙編語言語法高亮

1. 去官方網站查找彙編語法的配置文件
由於我使用的彙編編譯工具是MASM,所以,這裏我找到了masm.uew
http://www.ultraedit.com/files/wf/masm.uew
注意:打開masm.uew文件,開頭有“/L15”之類的數字,要將數字和電腦上原本存在的數字順序排好。(見附錄)

2. 在C:\Documents and Settings\你的用戶名\Application Data\IDMComp\UltraEdit\wordfiles目錄下,將masm.uew配置文件加入(這是UltraEdit16.0的情況);如果是wordfile.uew配置文件,而不是wordfiles目錄的話,可以將masm.uew中的內容追加到wordfile.uew中(這是UltraEdit14.0的情況)。

3.使用UltraEdit打開彙編源文件(.asm),即可看到語法高亮

若對語法高亮顏色不滿意,可在“高級->配置->編輯器顯示->語法着色”進行修改


二、添加編譯鏈接運行菜單

前提: 將ml.exe, link.exe已加入PATH環境變量中

UltraEdit中的符號表示:
%F 全路徑,如C:\source\chap1\hello.asm
%P 路徑, 如C:\source\chap1
%N 文件名稱,如hello
%E 擴展名,如.asm


打開菜單“高級->工具欄配置”

1、單擊“插入”按鈕,則新建一菜單項目
在“命令”選項中
菜單項目名稱:彙編編譯鏈接
命令行:ml "%F"
工作目錄:%P
在“輸出”選項卡中,
勾選“輸出到列表框”單選按鈕,“捕獲輸出”複選框,“不替換”單選按鈕

2、單擊“插入”按鈕,則新建一菜單項目
在“命令”選項中
菜單項目名稱:彙編鏈接
命令行:link %P%N.obj
工作目錄:%P
在“輸出”選項卡中,
勾選“輸出到列表框”單選按鈕,“捕獲輸出”複選框,“不替換”單選按鈕

3、單擊“插入”按鈕,則新建一菜單項目
在“命令”選項中
菜單項目名稱:彙編運行
命令行:%P%N.exe
工作目錄:%P
在“輸出”選項卡中,
勾選“輸出到列表框”單選按鈕,“捕獲輸出”複選框,“不替換”單選按鈕

4、單擊“插入”按鈕,則新建一菜單項目
在“命令”選項中
菜單項目名稱:彙編編譯
命令行:masm %n%e
工作目錄:%P
在“輸出”選項卡中,
勾選“輸出到列表框”單選按鈕,“捕獲輸出”複選框,“不替換”單選按鈕

最後,選中每一項,單擊“向上”或“向下”按鈕可調整順序。
注意:工作目錄中不能用空格,所以放在C、D、E等根目錄下進行IDE編譯就是可行的,而放在桌面上就不行了。所以,要將工作目錄放在盤符根目錄下。

附錄,masm.uew文件內容
——————————以下——————————————————
/L15"MASM" MASM_LANG Nocase Line Comment = ; File Extensions = ASM COD INB INC MAC
/Colors = 0,8421376,8421376,8421504,255,
/Colors Back = 16777215,16777215,16777215,16777215,16777215,
/Colors Auto Back = 1,1,1,1,1,
/Font Style = 0,0,0,0,0,
/Delimiters = ~!%&^*()-+=|\/{}[]:;"‘<> ,
/Function String = “%[a-zA-Z0-9_@?$]+[ ^t]+proc+[ ^t^p]"
/C1"Instruction" Colors = 16711680 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
.break .breakif .continue .else .elseif .endif .exit .if .repeat .startup
.until .untilcxz .while
aaa aad aam aas adc add and arpl
bound bsf bsr bswap bt btc btr bts
call cbw cdq clc cld cli clts cmc cmov cmp cmps cmpsb cmpsd cmpsw cmpxchg
cmpxchg8b cpuid cwd cwde
daa das dec div
enter esc
hlt
idiv imul in inc ins insb insd insw int into invd invlpg invoke iret iretd
ja jae jb jbe jc jcxz je jecxz jg jge jl jle jmp jna jnae jnb jnbe jnc jne
jng jnge jnl jnle jno jnp jns jnz jo jp jpe jpo js jz
lahf lar lds lea leave les lfs lgdt lgs lidt lldt lmsw lock lods lodsb
lodsd lodsw loop loope loopne loopnz loopz lsl lss ltr
mov movs movsb movsd movsw movsx movzx mul
neg nop not
oio or out outs outsb outsd outsw
pop popa popad popf popfd push pusha pushad pushf pushfd pushw
rcl rcr rdmsr rdtsc rep repe repne repnz repz ret retf retn rol ror rsdc
rsldt rsm rsts
sahf sal sar sbb scas scasb scasd scasw seta setae setb setbe setc sete
setg setge setl setle setna setnae setnb setnc setne setng setnge setnl
setnle setno setnp setns setnz seto setp setpe setpo sets setz sgdt shl
shld shr shrd sidt sldt smsw stc std sti stos stosb stosd stosw str sub
svdc svldt svts
test
verr verw
wait wbinvd wrmsr
xadd xchg xlat xlatb xor
/C2"Preprocessor" Colors = 255 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
%cond %out
.186 .286 .286c .286p .287 .386 .386p .387 .486 .486c .486p .586 .586p .686
.686p .8086 .8087 .alpha .dosseg .code .const .cref .data .data? .err .err1
.err2 .errb .errdef .errdif .erre .fardata .fardata? .k3d .lall .lfcond
.list .mmx .model .msfloat .nolist .nolistmacro .radix .sall .seq .sfcond
.stack .type .xall .xcref .xlist
@catstr @code @codesize @cpu @curseg @data @data? @datasize @date @environ
@fardata @fardata? @filename @instr @interface @model @sizestr @stack
@startup @substr @time @version @wordsize
addr align and arg assume at
basic byte
c casemap catstr codeptr codeseg comm comment common compact
dataptr db dd df dosseg dup dq dt dw dword
echo else elseif elseifdef elseifidn elseifidni end endif endm endp ends
epilogue epiloguedef eq equ even exitm export expr32 extern externdef extrn
far far16 far32 farstack flat for forc fortran fword
ge global goto group gt
high highword huge
ideal if if1 if2 ifb ifdef ifdif ifdifi ifidn ifidni ife ifnb ifndef
include includelib instr integer irp irpc
jumps
label large le length lengthof listing local locals lroffset low lowword lt
macro mask masm masm51 medium memory mm2word mmword model multerrs
name near near32 nle nokeyword nolist nolocals noljmp nolocals nomasm51
none nonunique noscoped nosmart not nothing
offset opattr option or org
page para pascal popcontext private proc prologue prologuedef proto ptr
public publicdll purge pushcontext pword
quirks qword
readonly real4 real8 real10 record rept req
sbyte sdword seg segment shl short size sizeof shr small smart stack
stdcall struc struct substr subtitle subttl sword symtype
tbyte textequ this tiny title tword type typedef
use16 use32 uses union
vararg
width word
xor
\
/C3"Coprocessor" Colors = 33023 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmov fcom fcomp fcompp fcos
fdecstp fdiv fdivp fdivr fdivrp ffree fiadd ficom ficomp fidiv fidivr fild
fimul fincstp finit fist fistp fisub fisubr fld fld1 fldcw fldenv fldl2e
fldl2t fldlg2 fldln2 fldpi fldz fly2x fly2xp1 fmul fmulp fnclex fninit fnop
fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan fqrt frndint frstor
fsave fscale fsin fsincos fst fstcw fstenv fstp fstsw fsub fsubp fsubr
fsubrb ftst fucom fucomp fucompp fwait fxam fxch fxtract
/C4 Colors = 32768 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
!
%
&
*
+
,
-
// /
>
=
< |
/C5"Register" Colors = 4210816 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
$
?
@@ @b @f
ah al ax
bh bl bp bx
carry? ch cl cr0 cr2 cr3 cr4 cs cx
dh di dl dr0 dr1 dr2 dr3 dr4 dr5 dr6 dr7 ds dx
eax ebx ebp ecx edi edx es esi esp ext0 ext1 ext2 ext3 ext4 ext5 ext6 ext7
extb0 extb1 extb2 extb3
fs
gs
mm mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7
overflow?
parity?
si sign? sp ss
tr3 tr4 tr5 tr6 tr7
xmm xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7
zero?
/C6 MMX 3DNow SIMD Colors = 16711680 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
addps addss andnps andps
cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps
cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpps cmpss cmpunordps
cmpunordss comiss cvtpi2ps cvtps2pi cvtsi2ss cvttps2pi cvttss2si cvtss2si
divps divss
emms
femms fxrstor fxsave
ldmxcsr
maskmovq maxps maxss minps minss movaps movd movdf movdt movhps movhlps
movlhps movlps movmskps movntps movntq movq movss movups mulps mulss
orps
packssdw packsswb packuswb paddb paddd paddsb paddsw paddusb paddusw paddw
pand pandn pavgb pavgusb pavgw pcmpeqb pcmpeqd pcmpeqd pcmpeqw pcmpgtb
pcmpgtd pcmpgtw pextrw pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax
pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfsqit1 pfrsqrt pfsub pfsubr pi2fd
pinsrw pmaddwd pmaxsw pmaxub pminsw pminub pmovmskb pmulhrw pmulhuw pmulhw
pmullw por prefetch prefetchw prefetchnta prefetcht0 prefetcht1 prefetcht2
psadbw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb
psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw
punpckldq punpcklwd pxor pshufw
rcpps rcpss rdpmc rsqrtps rsqrtss
sfence shufps sqrtps sqrtss stmxcsr subps subss syscall sysret
ucomiss unpckhps unpckps unpcklps
xmmword xorps
——————————以上——————————————————
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章