软件:

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文件,如下图

masm32环境配置

0x05 ||  在该目录下新建一个工程目录source,以后可以在里面写一些win32项目

0x06 ||  切换到source,新建一个Test文件夹,这样就可以写我们的win32代码,win32项目各文件如下

masm32环境配置

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

masm32环境配置

0x08 ||  第一个由汇编代码写的程序完成,双击Test.exe,弹出一个消息框

masm32环境配置

代码:

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 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

相关文章: