日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图解命令行手动编译构建一个win32汇编程序

發(fā)布時間:2025/4/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图解命令行手动编译构建一个win32汇编程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

首先安裝masm32 V11.0;安裝完后出現(xiàn)下列對話框;

圖沒截好;下面圖的 k. 是 link. ;ktopPath是DesktopPath;

此段代碼的含義是用WScript創(chuàng)建了一個快捷方式,指向剛安裝的masm32的編輯器;快捷方式位于桌面;

?

下面來手動編譯一個win32 匯編程序;

先建立環(huán)境變量如下;

新建;

新建;

還有個lib變量也是新建;忘了截圖;見后面代碼;

Path中添加如下內(nèi)容;

?

未構(gòu)建之前,有四個文件;一個圖標(biāo),一個makefile,一個asm文件,一個rc文件;

手動命令行構(gòu)建不需要makefile;

?

首先打下圖命令編譯;編譯之后看到obj出來了;

?

打下圖命令編譯資源;成功后看到rc編譯后的res文件出來了;

?

再打下圖命令;鏈接;成功后看到exe出來了;這就是手動編譯構(gòu)建的全過程;

?

上述相關(guān)代碼來自羅云琳書中代碼;

var.bat;

?

@echo off rem 請根據(jù) Masm32 軟件包的安裝目錄修改下面的 Masm32Dir 環(huán)境變量! 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 ; 編程環(huán)境測試代碼 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 使用 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 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 數(shù)據(jù)段 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.dataszCaption db '恭喜',0 szText db '當(dāng)您看到這個信息的DB,您已經(jīng)可以編譯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 #需要的目標(biāo)文件 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執(zhí)行完后,會刪除obj和res文件;而前面手動構(gòu)建的情況,這兩個文件還在;

?

?

總結(jié)

以上是生活随笔為你收集整理的图解命令行手动编译构建一个win32汇编程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。