图解命令行手动编译构建一个win32汇编程序
生活随笔
收集整理的這篇文章主要介紹了
图解命令行手动编译构建一个win32汇编程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先安裝masm32 V11.0;安裝完后出現下列對話框;
圖沒截好;下面圖的 k. 是 link. ;ktopPath是DesktopPath;
此段代碼的含義是用WScript創建了一個快捷方式,指向剛安裝的masm32的編輯器;快捷方式位于桌面;
?
下面來手動編譯一個win32 匯編程序;
先建立環境變量如下;
新建;
新建;
還有個lib變量也是新建;忘了截圖;見后面代碼;
Path中添加如下內容;
?
未構建之前,有四個文件;一個圖標,一個makefile,一個asm文件,一個rc文件;
手動命令行構建不需要makefile;
?
首先打下圖命令編譯;編譯之后看到obj出來了;
?
打下圖命令編譯資源;成功后看到rc編譯后的res文件出來了;
?
再打下圖命令;鏈接;成功后看到exe出來了;這就是手動編譯構建的全過程;
?
上述相關代碼來自羅云琳書中代碼;
var.bat;
?
@echo off rem 請根據 Masm32 軟件包的安裝目錄修改下面的 Masm32Dir 環境變量! set Masm32Dir=C:\Masm32 set include=%Masm32Dir%\Include;%include% set lib=%Masm32Dir%\lib;%lib% set path=%Masm32Dir%\Bin;%Masm32Dir%;%PATH% set Masm32Dir= echo on
Test.asm
?
?
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; Sample code for < Win32ASM Programming > ; by 羅云彬, http://asm.yeah.net ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; Test.asm ; 編程環境測試代碼 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 使用 nmake 或下列命令進行編譯和鏈接: ; ml /c /coff Test.asm ; rc Test.rc ; Link /subsystem:windows Test.obj Test.res ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.386.model flat,stdcalloption casemap:none ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; Include 文件定義 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> include windows.inc includeINCLUDE2.inc includelINCLUDE32.lib include kernel32.inc includINCLUDErnel32.lib ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 數據段 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.dataszCaption db '恭喜',0 szText db '當您看到這個信息的DB,您已經可以編譯Win32匯編程序了!DB0;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 代碼段 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.code start:invoke MessageBox,NULL,offset szText,offset szCaption,MB_OKinvoke ExitProcess,NUOFFSET>>>>>>>>OFFSET>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>end start END
Test.rc
?
1?? ??? ?icon?? ?"Main.ico"
?
Makefile
?
EXE = Test.exe #指定輸出文件 OBJS = Test.obj #需要的目標文件 RES = Test.res #需要的資源文件LINK_FLAG = /subsystem:windows #連接選項 ML_FLAG = /c /coff #編譯選項$(EXE): $(OBJS) $(RES)Link $(LINK_FLAG) $(OBJS) $(RES).asm.obj:ml $(ML_FLAG) $< .rc.res:rc $<clean:del *.objdel *.res
看下Makefile,makefile執行完后,會刪除obj和res文件;而前面手動構建的情況,這兩個文件還在;
?
?
總結
以上是生活随笔為你收集整理的图解命令行手动编译构建一个win32汇编程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软Entity Framework安装
- 下一篇: 图解SQL子查询实例