Win32汇编环境配置

放假了,发现自己知识面窄,趁有时间就打算折腾下Win32汇编。其实在学校也上过汇编课,是基于dos的。那时老师不务正业,老跟我们讲政治经济文化,唯独不怎么讲课;再加上自己的问题,导致了dos汇编学得好烂(几乎没学),但发现dos汇编比较少用,所以直接学Win32汇编了,基础知识薄弱遇到再补上去。我只是多了解其他知识,不求精通。如果要学好还是应该先写好dos汇编的。

介绍

Win32可执行环境的开发过程如下图

常用的编译器有Microsoft的MASM系列和Borland的TASM系列。但都存在一些缺点:

MASM:没有当做完整的开发包发布,会发现在不同版本中都会缺少一些工具,需要在其他地方获得。

TASM:优化方面不好,使用会有点麻烦。

则可以选择使用MASM32 SDK软件包。它是不同工具软件的集合,它的汇编编译器用的是微软MASM软件包中的Ml.exe,资源编译器和32位链接器使用的是Microsoft Visual Studio中的Rc.exe,Link.exe,同时包含了Microsoft Visual Studio中的其他一些工具,如Lib.exe和DumpPe.exe等,所有的工具都是适合于Win32编程的版本。

安装

MASM32 SDK下载地址:http://www.masm32.com/masmdl.htm。

下载后是一个安装文件install.exe。双击打开一直确定或下一步就能完成安装,在这个过程中会有个选择安装目录,并且会测试是否能安装。最终在安装目录出现masm32文件夹。

masm32文件夹中的信息:

目    录

介    绍

\masm32

IDE环境、内带的文本编辑程序和模板生成程序等

\masm32\include

所有的头文件,Windows.inc为数据结构和预定义值的定义文件,Resource.h为资源文件的头文件,其他 .inc文件为对应同名DLL文件中的API函数声明文件

\masm32\lib

所有的导入库文件,每个.lib文件是对应DLL文件的导入库

\masm32\bin

可执行文件目录,里面包括Ml.exe,Link.exe和Rc.exe等

\masm32\help

帮助文件目录

\masm32\m32lib

一些常用C子程序的汇编实现源程序,如熟悉的stdin和stdout等,有一定的参考价值

其他目录

主要为例子和可用可不用的小工具,例子广泛收集自网上不同作者的作品,很有参考价值

如果不用内带的IDE环境,不看附带的例子和帮助文件,那么有了bin,include和lib这三个目录中的内容,就可以进行Win32汇编编程了,其他目录中的文件仅起辅助作用。

使用

设置环境变量

可以在计算机中高级系统设置的环境变量中写死或者每次要编译连接时先执行一个批处理文件Var.bat,退出后所设置的环境变量也会消失掉。

Var.bat

View Code
1 @echo off
2 rem 请根据 Masm32 软件包的安装目录修改下面的 Masm32Dir 环境变量!
3 set Masm32Dir=D:\masm32
4 set include=%Masm32Dir%\include;%include%;D:\Program Files\Programing\Microsoft Visual Studio 10.0\VC\include;D:\masm32\include\others_dk\INCLUDE;D:\masm32\include\others_dk\MFC;
5 set lib=%Masm32Dir%\lib;%lib%
6 set path=%Masm32Dir%\bin;%Masm32Dir%;%path%;
7 echo on

 

编写程序

源代码HelloWorld.asm

View Code
        .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    'MessageBox',0
szText    db    'HelloWorld!',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .code
start:
        invoke    MessageBox,NULL,offset szText,offset szCaption,MB_OK
        invoke    ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        end    start

 

资源文件HelloWorld.rc(只有个文件名,内容为空。暂时用不到)

执行

运行批处理文件后,在命令符中进入到源程序的目录下,并分条输入并回车(编译源程序、编译资源、链接),最终会产生可执行文件HelloWorld.exe。

ml  /c /coff  HelloWorld.asm
rc    HelloWorld.rc
Link /subsystem:windows    HelloWorld.obj  HelloWorld.res

运行后

扩展

每次在命令符都要输入指令,比较麻烦。可以使用make工具(Microsoft中叫nmake.exe,可以在Visual C++的bin目录下找到)。把MakeFile放到源程序的文件目录下,要编译运行源程序只要在命令符输入的编译等指令时替换成nmake就可以。

MakeFile

View Code
 1 NAME = HelloWorld
 2 OBJS = $(NAME).obj
 3 RES  = $(NAME).res
 4 
 5 LINK_FLAG = /subsystem:windows
 6 ML_FLAG = /c /coff
 7 
 8 $(NAME).exe: $(OBJS) $(RES)
 9     Link $(LINK_FLAG) $(OBJS) $(RES)
10 
11 .asm.obj:
12     ml $(ML_FLAG) $<
13 .rc.res:
14     rc $<
15 
16 clean:
17     del *.obj
18     del *.res

 

 

 

 参考:罗云彬的《Windows环境下32位汇编语言程序设计》

转载于:https://www.cnblogs.com/dann/p/2909668.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在VS Code中配置Win32汇编环境,可以按照以下步骤进行操作: 1. 首先,确保你已经安装了VS Code编辑器以及Win32汇编器(如masm、nasm等)。 2. 在VS Code中按下快捷键Ctrl+Shift+P,调出命令面板。然后输入"C/C++"并选择"Edit Configurations(UI)"进入配置界面。 3. 在配置界面中,可以看到一个名为"c_cpp_properties.json"的文件。这个文件是用来配置C/C++的属性的。 4. 打开"c_cpp_properties.json"文件,在其中的"configurations"数组中添加一个新的配置项,如下所示: ```json { "name": "Win32", "includePath": ["${workspaceFolder}/**"], "defines": ["_DEBUG", "UNICODE", "_UNICODE"], "windowsSdkVersion": "10.0.18362.0", "compilerPath": "C:/Program Files/mingw-w64/x86_64-8.1.0-win32/mingw64/bin/g++.exe", "cStandard": "c17", "cppStandard": "c17", "intelliSenseMode": "gcc-x64" } ``` 在这个配置项中,你需要修改以下几个参数: - "compilerPath":指定你的汇编器的路径,例如masm的路径。 - "includePath":指定包含头文件的路径,这里使用`${workspaceFolder}/**`表示包含项目文件夹中的所有目录。 - "windowsSdkVersion":指定Windows SDK的版本。 - "cStandard"和"cppStandard":指定C和C++的标准版本。 - "intelliSenseMode":指定IntelliSense的模式,这里选择了gcc-x64。 5. 保存并关闭"c_cpp_properties.json"文件。 通过以上配置,你就成功地在VS Code中配置了Win32汇编环境。现在你可以在项目中编写和调试Win32汇编代码了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Win32汇编练习环境](https://download.csdn.net/download/wsy123456654321/9596498)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Windows下VSCode配置C++环境](https://blog.csdn.net/qq_39714045/article/details/120730848)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值