IDE,全稱集成開發(fā)環(huán)境,對于MASM的IDE,我想每個(gè)人最低的要求都至少要求在寫程序時(shí)不需要在命令行中手工輸入命令來編譯再鏈接,這樣很不方便,如果代碼有錯(cuò),就需要用編輯器(一般是計(jì)事本)修改然后再重復(fù)的編譯、鏈接,把大量的時(shí)間花在這種操作上,不爽!
為此,RedASM出現(xiàn)了,它具備了寫MASM程序的所有基本功能,只要設(shè)置好,在RedASM中寫程序簡直和用VC差不多,API函數(shù)原型的提示、常數(shù)自動的彈出、結(jié)構(gòu)的成員變量顯示(暫不支持聲明為結(jié)構(gòu)類型的變量)、過程變量名自己列出、支持快速跳轉(zhuǎn)、關(guān)鍵字的自動補(bǔ)齊、集成對話框編輯器/菜單編輯器、工具欄編輯器、調(diào)試器等等等等,讓我等匯編狂人驚喜不已,但是(住住聽到這兩字時(shí)總是讓人心里發(fā)緊^_^),RedASM對中文的支持相當(dāng)不好,并且一直沒有解決,情況就是打開、編輯有中文的源文件時(shí)會停止響應(yīng)或死機(jī),除非整個(gè)程序都不用中文那就沒問題,最新版本的RedASM能通過設(shè)置中文字體來支持雙字節(jié)的編輯,但這種方法只適用于2000以上的操作系統(tǒng),對于我們這些用著破機(jī)器裝個(gè)98都覺得慢、對英文頭痛的人來說,RedASM成了我等人心頭之雞肋---功能強(qiáng)大卻用著煩心,可是它的確非常實(shí)用,心里這個(gè)可惜啊,猶如滔滔江水....(打住)!
所以,如果你操作系統(tǒng)在98以上(不包括ME),推薦你選擇RedASM,最新版本的RedASM速度更快,實(shí)用的功能讓MASM程序的編寫真的非常方便,你可以到作者主頁上去下載(http://radasm.sonshinesoftware.com/
),記住RedASM更新相當(dāng)快,要時(shí)常去看看是否更新了,這也是對作者的一種支持。
不過因?yàn)槲襌edASM只用過幾次,它的功能與特點(diǎn)我不清楚,詳細(xì)自己去玩吧,而MASM的設(shè)置也相當(dāng)方便,只要設(shè)置好MASM32的路徑就行。
RedASM的幾個(gè)缺點(diǎn):
1.是沒有模板,雖然可以自己寫一個(gè),但是內(nèi)建模析是一個(gè)IDE所具備基本條件,不知道RedASM的作者為什么不寫幾個(gè)。
2.高亮顯示的API函數(shù)與常數(shù)庫不全,遇到?jīng)]有加入的函數(shù),我們還是得去看參考手冊。(建立寫MASM總開著參考手冊,方便查詢)。
3.資源編輯功能不是很實(shí)用,RedASM把對話框編輯、菜單編輯等等分開了,碰到需要加入其它資源,還是得自己去修改,這點(diǎn)不方便。
另外向大家重點(diǎn)推薦另一個(gè)也是我一直使用的IDE,不,不能說是IDE,只能說是編輯器,那就是EditPlus,只要自己設(shè)置好,EditPlus就可以相當(dāng)方便的用來進(jìn)行MASM的編程,如何配置大家就不要操心了,我已經(jīng)為大家寫好了相關(guān)的配置文件,并做了一個(gè)安裝程序,請大家下載本站的MASM for EditPlus,安裝好后就行了,目前MASM for EditPlus已經(jīng)升級到Serial 0004,因?yàn)镸ASM for EditPlus是我自己配置的,我就它詳細(xì)向大家說說MASM for EditPlus的優(yōu)點(diǎn)。
1.MASM for EditPlus的關(guān)鍵字非常全,因?yàn)槲沂前凑兆钚掳姹镜腗ASMv8.0來制作語法文件表的,所有MASMv8.0支持的函數(shù)都能高亮顯示,如果某個(gè)在API手冊中存在的API在EditPlus中輸入后沒有高亮顯示就證明此函數(shù)MASM不支持,同理,常數(shù)與結(jié)構(gòu)也是一樣,另外所有的關(guān)鍵字都支持自動完成,這樣可以盡量的避免大小寫這種討厭的錯(cuò)誤.
2.MASM for EditPlus的模板相當(dāng)多,這樣省得大家在學(xué)習(xí)時(shí)得去自己寫重復(fù)的代碼.
3.批處理相當(dāng)完善,還支持VC的編譯,批處理有相當(dāng)?shù)闹悄?當(dāng)編譯的文件是EXE/DLL等程序時(shí),如果源文件目錄下不存在資源文件,批處理會通過復(fù)制的方法把相應(yīng)的res改名復(fù)制到目標(biāo)目錄,編譯后就能行到一個(gè)包含資源文件的程序,這樣方便點(diǎn)4號工具欄啟動VC資源編輯器來進(jìn)行編輯.
3.當(dāng)編譯的模式是DLL/VxD時(shí),如果源文件目錄下不存在DEF文件,則批處理也會自動用重定向文件來創(chuàng)建它,這樣你就不用手工去自己建立了,當(dāng)然要輸出函數(shù)的話還是得自己添加。
4.當(dāng)建立LIB時(shí),INC文件會自動的創(chuàng)建,雖然有時(shí)會把一些API函數(shù)也加進(jìn)去,但是這樣不影響它的使用,因?yàn)镸ASM編譯時(shí)是找到原型就跳過的,所以建立自己建立的LIB在使用時(shí)盡量包含在最后。
5.因?yàn)镸ASM for EditPlus集成了MASM5.0、MASMv8.0、VC資源編輯器,98DDK的頭文件,所以,你只需要安裝好MASM for EditPlus后就不需要進(jìn)行其它設(shè)置了,并且只要你安裝了SoftICE,還可以使用MASM for EditPlus進(jìn)行源碼調(diào)試。
6.如果你喜歡手工進(jìn)行編譯,可以這樣,在啟動時(shí)打通MASM for EditPlus的BIN目錄,如在Autoexec.bat中添加一句set PATH=%PATH%;D:\MASM32\BIN,注意D:\MASM32\BIN要是你自己的安裝目錄下的BIN,以后在命令行方式下只要輸入mlink 文件路徑就可以進(jìn)行一步到位的編譯,例如編譯C:\1.asm,則輸mlink c:\1.asm,則能自動的編譯出1.EXE文件來。唯一的要求就在源代碼最前面幾行中加入一行注釋,里面用雙引號包含說明編譯的模式,如;MODE="DOS",則編譯程序會自動編譯為DOS匯編程序,相關(guān)的關(guān)鍵關(guān)有DOS/CON/DLG/EXE/DLL/MDI/VXD/LIB.
小技巧:
===============
1.RedASM有一個(gè)很方便的功能,叫ASCII碼表,這在想知道某些字符的值的相當(dāng)有用,其實(shí)EditPlus中這個(gè)功能更加方便,你只要把光標(biāo)移動到相應(yīng)字符前面,在EditPlus的狀態(tài)欄中會自動顯示其ASCII值,雖然無法顯示特殊的字符,但是已經(jīng)相當(dāng)方便好用。
2.當(dāng)一個(gè)文件中自定義的過程、函數(shù)過多時(shí),可以點(diǎn)搜索->函數(shù)列表來查看已有的過程,雙擊后能馬上跳到目錄行.對于大文件相當(dāng)文件。
3.當(dāng)要查找字符時(shí),如想查找一些變量是否重聲明,可以雙擊選擇這個(gè)單詞,再點(diǎn)查找時(shí)選擇的文本會自動出現(xiàn)在查找編輯框中。
4.當(dāng)要查找某個(gè)API函數(shù)相應(yīng)的LIB時(shí)或查看某個(gè)常數(shù)的值時(shí),你可以這樣做:點(diǎn)搜索->在文件中查找,輸入API的名字,然后文件類型使用*.inc,文件夾選擇MASM for EditPlus的INCLUDE文件,然后點(diǎn)查找,不到1秒鐘,就能查找到它所對應(yīng)的INC文件。也很方便,并且設(shè)置好后,以后查找時(shí)只需雙擊想查詢的API再點(diǎn)在文件中查找,所有的設(shè)置都不需要輸入,直接點(diǎn)查找就行,用得好的話,這比在API手冊中查找還要方便。
5.如果編譯時(shí)使用EditPlus的輸出窗口,當(dāng)發(fā)生錯(cuò)誤后,你只需雙擊列表中錯(cuò)誤提示的那一行,則能自動跳運(yùn)源文件中相關(guān)行,這一點(diǎn)和VC的編輯器一樣。這個(gè)功能也相當(dāng)方便。具體在參數(shù)設(shè)置中,在用戶工具需要使用輸出窗口的工具下復(fù)選"捕捉輸出"就行了。
6.如果你用MASM已經(jīng)在寫程序了,并且想寫一個(gè)軟件,建議使用工程功能,這樣可以把一系列的文件設(shè)置在一個(gè)工程中,在下面的打開的文件名列表左邊有一個(gè)文件夾的圖標(biāo),點(diǎn)一下能在彈出的菜單中相當(dāng)文件設(shè)置工程文件。
7.把API的幫助文件添加到5號工具欄,以后只需選擇要查詢的關(guān)鍵字,點(diǎn)5號工具欄就可以顯示它的信息,非常方便。如果您還未安裝API參考手冊,請到我的站點(diǎn)下載。
EditPlus做為一個(gè)文本編輯器是非常實(shí)用的,對于編程來說,有一些非常有用的功能不容易被您發(fā)現(xiàn),我均放到了工具欄上,相應(yīng)的快捷鍵我?guī)湍x好了,這些快捷鍵是我習(xí)慣的,如下:
==============================================================
把選擇的文本復(fù)制追加到剪切板 Ctrl+Shift+C
選擇文本全部轉(zhuǎn)換成大寫 Ctrl+U
選擇文本全部轉(zhuǎn)換成小寫 Ctrl+L
選擇當(dāng)前的字詞 Ctrl+W
選擇當(dāng)前行 Ctrl+R 或 單擊行號
開始進(jìn)行列塊選擇 Alt+Mouse
注釋選擇的文本 Ctrl+;
復(fù)制當(dāng)前行 Ctrl+J
增加當(dāng)前行的縮進(jìn) Ctrl+I
縮進(jìn)或縮進(jìn)選擇行 Tab
顯示當(dāng)前源代碼中的所有函數(shù)列表 F4
在當(dāng)前光標(biāo)所在行設(shè)置一個(gè)標(biāo)記 F5
清除當(dāng)前文檔中的所有標(biāo)記 F6
快速跳轉(zhuǎn)到當(dāng)前行上一個(gè)標(biāo)記 F7
快速跳轉(zhuǎn)到當(dāng)前行下一個(gè)標(biāo)記 F8
跳到指定行 Ctrl+G
顯示或隱藏列標(biāo)記 Ctrl+`
開始記錄或停止鍵盤宏記錄 Ctrl+Q
鍵盤宏回放 Alt+ 0,1,2,3...
運(yùn)行用戶工具 Ctrl+ 0,1,2,3...
其中最實(shí)用的是文檔標(biāo)記,當(dāng)一個(gè)文件很長時(shí),如果您突然想聲明一個(gè)全局變量,當(dāng)然您可能會用宏在代碼中定義,但更有可能的是您會拖動光標(biāo)到最前面的.data或.data?段添加好變量,再拖動光標(biāo)到剛才的地方,如果代碼很多,非常麻煩,這個(gè)時(shí)候,請一定要使用標(biāo)記功能,碰到這種情況,您只需先在當(dāng)前行按下F5做一個(gè)標(biāo)記,然后再到前面聲明好變量,再按一個(gè)F8,就能馬上返回剛才的位置,非常方便。
接著是函數(shù)列表,當(dāng)一個(gè)文件很大,里面有N個(gè)過程/函數(shù)時(shí),F4就太方便了,您可能在某個(gè)過程中修改時(shí)突然想到另外某個(gè)過程也要修改,此時(shí)您只需按下F4,所有的過程就全部出來了,選擇馬上跳轉(zhuǎn)到這個(gè)過程,結(jié)合標(biāo)記功能,在文件中來回跳轉(zhuǎn)根本不會再麻煩。本文來自編程入門網(wǎng)
另外一個(gè)非常實(shí)用的功能是增加縮進(jìn),當(dāng)源代碼的某一塊要全部往前減少一個(gè)制表符時(shí),你只需選擇這些行,再按Ctrl+I就OK了(全部往后添加一個(gè)制表符就是Tab鍵,當(dāng)然要選擇),對代碼美化非常實(shí)用。
還有宏(不是MASM的宏),比如說對話框過程,每個(gè)對話框返回過程最初都是一樣的,您可以把過程記錄為一個(gè)宏,以后需要添加對話框模板的地方按Alt+n就行了。一樣方便。
另外有一個(gè)功能就是顏色選擇工具,猜想您以前定義色彩搞不好是使用宏RGB或自己進(jìn)行移位,現(xiàn)在不必這么麻煩了,顏色選擇功能已放到了工具欄上,不過記得選擇了相應(yīng)色彩后一定要把前面兩位與后面兩位調(diào)換,如選擇后為:#45FF10h,這時(shí)應(yīng)該改為10FF45h,如果前面是A-F,還應(yīng)添加0.如#89FFEEh,應(yīng)改為0EEFF89h.
另外還有一些編輯器非常好,如UE,如果你想使用UE做編輯器,可以直接掛上MASM for EditPlus的批處理,參數(shù)的提供設(shè)置一下后就能進(jìn)行MASM for EditPlus一樣的編譯操作。
另外,大家不要老是在意IDE的選擇,其實(shí)做為一個(gè)編輯器來說,關(guān)鍵是要自己用著順手,很多朋友都不喜歡RedASM的封裝性,老覺得它就像VC一樣搞得很復(fù)雜,還有些朋友不喜歡用EditPlus,這些都有個(gè)人的原因,所以,大家在選擇IDE時(shí),選擇好后覺得好用最好就一直用下去,像RedASM,將來它一定會解決雙字節(jié)的問題的,如果現(xiàn)在你去使用它,將來就會更加順手.當(dāng)然,MASM for EditPlus也會不斷的進(jìn)行更新,不過因?yàn)榫庉嬈鞑皇俏揖帉懙?我的做法可能有點(diǎn)白癡。最好的方法就是自己寫一個(gè)編輯器,這個(gè)以后再說。