masm32環境配置


軟件:

Windows7-32bit

visual c++6.0

Masm32 sdk 11

安裝:

0x00 ||  下載Masm sdk 11並安裝,下載路徑:http://www.masm32.com/

0x01 ||  安裝visual c++,自行百度,最好是英文版

配置:

0x02 ||  將E:\Visual C++ 6.0\VC6\VC98\Bin目錄下的NMAKE.exe拷貝放到E:\masm32\目錄下,我們后面要用到這個

0x03 ||  添加var.bat文件到E:\masm32\目錄,因為我們以后會用visual c++來建立一些資源文件,所以include里面的內容還包括VC安裝路徑include和MFC\include

1 @echo off 2 rem 請根據 Masm32 軟件包的安裝目錄修改下面的 Masm32Dir 環境變量! 3 set include=E:\masm32\Include;E:\Visual C++ 6.0\VC6\VC98\Include;E:\Visual C++ 6.0\VC6\VC98\MFC\Include
4 set lib=E:\masm32\lib 5 set path=E:\masm32\Bin;%path%
6 echo on

實踐:

 0x04 ||  按shift,鼠標右鍵打開cmd,切換到E:\masm32\目錄下,運行var.bat文件,如下圖

0x05 ||  在該目錄下新建一個工程目錄source,以后可以在里面寫一些win32項目

0x06 ||  切換到source,新建一個Test文件夾,這樣就可以寫我們的win32代碼,win32項目各文件如下

0x07 ||  在cmd中執行nmake命令

0x08 ||  第一個由匯編代碼寫的程序完成,雙擊Test.exe,彈出一個消息框

代碼:

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Sample code for < Win32ASM Programming 3rd Edition>
; by 羅雲彬, http://www.win32asm.com.cn
; Change by 大老黑, http://geekfz.cn
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Test.asm
; 編程環境測試代碼
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令進行編譯和鏈接:
; ml /c /coff Test.asm
; rc Test.rc
; Link /subsystem:windows Test.obj Test.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .386
        .model flat,stdcall
        option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定義
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include        windows.inc
include        user32.inc
includelib    user32.lib
include        kernel32.inc
includelib    kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 數據段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .const

szCaption    db    '極客改變世界', 0
szText        db    '來吧,和極客方舟一起成長',0

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代碼段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .code
start:
        invoke    MessageBox,NULL,offset szText,offset szCaption,MB_OK
        invoke    ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        end    start
Test.asm
EXE = Test.exe        #指定輸出文件
OBJS = Test.obj        #需要的目標文件
RES = geek.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 *.obj
    del *.res
Makefile

總結:

0x09 ||  這個程序雖小但卻五官俱全,包括源代碼.asm、資源文件.res、以及我們看不到的一些.lib

0x0A ||  小技巧:制作資源文件時候可以導入圖標后直接保存為.RES文件,這樣nmake命令就不用再去調用.rc文件生成資源文件

0x0B ||  nmake和Makefile用法及格式可以參考以下書籍

 

參考書籍:Windows環境下32位匯編語言程序設計(典藏版).pdf

(百度雲盤:https://pan.baidu.com/s/1ZAgw0Wpn2quL4bC-YKhSZg  uh97)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM