Visual Studio+MASM32写汇编程序——安装和环境配置说明

写在前面:

如果你之前使用的是Visual Studio 2022(其他版本不清楚,如果是2017版本应该也是行的,如果有uu成功,也可以分享自己的经验),那么建议你立即卸载重新安装(血泪教训,网上能找到的教程基本上都不能解决问题)。

2022版本可能会出现的问题:

MSB3721 命令“ml64.exe /c /nologo /Zi /Fo"x64\Debug\源.obj" /I "E:\masm32\include" /W3 /errorReport:prompt /Ta"源.asm"”已退出,返回代码为 1。 

以及一些其他的比如A2026 constant expected这样的问题。

卸载教程:卸载或移除 Visual Studio | Microsoft Learn全网唯一最全彻底删除VS及VS注册表!_彻底卸载vs-CSDN博客

参考第一个链接卸载Visual Studio 2022和Visual Studio 2022 Installer,参考第二篇文章删除注册表。

卸载后的安装教程(参考这个链接配置,在单个组件选择的时候,记得选择v14.26以下的版本,我的选择如图右红色标记部分,大家可以参考 ):

然后我们就可以愉快的开始安装和配置环境了。

一、下载MASM32 SDK

下载地址:MASM32 SDK

点击:Downloads选择Australia 1进行下载:

解压下载后的install.exe文件进行安装,安装的过程很简单,一直点击确定或者yes就可以了。

安装过程可能出现的问题:DELETE operation of EXE file has failed

解决这个问题参考链接:

win10 安装MASM32 遇到的问题DELETE operation of EXE file has failed-CSDN博客

注意作者在兼容模式选择那一步选择的选项!

二、环境配置

打开Visual Studio,选择新建一个空项目:

文件名称和路径定义好之后:

在解决方案资源管理器下右键项目名称,选择生成依赖项->生成自定义:

勾选masm那一项,点击确定:

注意:一定要在添加.asm文件之前勾选这一项,否则可能会出现这个问题:

A2044 invalid character in file demo2

(我在查找这个问题过程中看到的可能的原因:1.提示行应该使用半角符号而不是全角符号;2.includelib和include是不是用错了;3.不要直接将.cpp文件的后缀改成.asm可以先建立.txt文件再改成.asm文件。没有验证过,大家可以自己尝试验证。)

然后为这个项目添加一个.asm后缀的文件:

右键项目->添加->新建项->C++文件,修改文件的后缀名为.asm,点击添加:

右键项目->属性:

链接器->系统->子系统,选择控制台:

链接器->常规->附加库目录,点击进行编辑,输出MASM的lib路径:

展开MicrosoftMacroAssembler,选择“general”下的“IncludePaths”,点击进行编辑,输出MASM的include路径:

选择“Listing File”下的“Assembled Code Listing File”,点击进行编辑:

点击确定!!!

配置完成!

三、 测试

1、控制台界面的汇编程序测试代码如下:

.386
.model flat,stdcall
option casemap:none
includelib msvcrt.lib
printf PROTO C:ptr sbyte,:VARARG
.data 
szMsg byte "Hello World!",0ah,0
.code
start:
      invoke printf,offset szMsg
      ret
end   start

2、窗口界面的汇编程序测试代码如下:

右键项目->链接器->系统->子系统,修改为窗口,然后运行:

.386
.model flat,stdcall
option casemap:none
MessageBoxA PROTO :dword,:dword,:dword,:dword
MessageBox equ <MessageBoxA>
includelib user32.lib
NULL equ 0
MB_OK equ 0
.stack 4096
.data 
SzTitle byte 'Hi!',0
SzMsg byte 'Hello World!',0
.code
start:
invoke MessageBox,
       NULL,
       offset SzMsg,
       offset SzTitle,
       MB_OK
       ret
end   start

 结果如下:

  • 22
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值