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

这篇具有很好参考价值的文章主要介绍了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以下的版本,我的选择如图右红色标记部分,大家可以参考 ):win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编

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

一、下载MASM32 SDK

下载地址:MASM32 SDK

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

win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编

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

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

解决这个问题参考链接:

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

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

二、环境配置

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

win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编

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

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

win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编

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

win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编

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

A2044 invalid character in file demo2

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

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

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

win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编

右键项目->属性:

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

win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编

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

win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编

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

win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编

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

win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编

点击确定!!!

配置完成!

三、 测试

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

win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编

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

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

win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编

.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

 结果如下:

win32汇编环境搭建教程(masm32 sdk),汇编语言,visual studio,汇编文章来源地址https://www.toymoban.com/news/detail-800237.html

到了这里,关于Visual Studio+MASM32写汇编程序——安装和环境配置说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nas汇编程序的调试排错方法

    nas汇编程序的调试排错方法: 1、查找是哪一步错了 2、查看对应的*.lst文件,本例中是\\\"asmhead.lst\\\" 3、根据*.lst文件的[ERROR #002]提示查看源码,改错。 4、重新运行编译,OK nask.exe编译汇编程序时出错了 在文件中根据\\\"[ERROR\\\"查找就可以了。 E:techdoc30dayOScodeday03boyIasmhea

    2024年02月09日
    浏览(38)
  • C/C++源程序到可执行程序exe的全过程(及汇编和反汇编的区别)

    1.C/C++源程序到可执行程序exe的全过程(及汇编和反汇编的区别) 一个现代编译器的主要工作流程如下: 源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables)。 简

    2024年02月10日
    浏览(41)
  • 【汇编】实验11 编写子程序

    综合一下学过的指令就行了,比较简单。

    2024年01月16日
    浏览(48)
  • 【proteus】8086 写一个汇编程序并调试

    参考书籍:微机原理与接口技术——基于8086和Proteus仿真(第3版)p103-105,p119-122. 参考程序是p70,例4-1 在上一篇的基础上:  创建项目和汇编文件  双击8086的元件图: 可以修改size  比如这里修改成: 在asm中写一个简单的汇编程序: 编译:  编译通过: 选中内存和寄存器窗

    2024年02月08日
    浏览(36)
  • 南京邮电大学汇编语言程序设计实验一(汇编语言语法练习与代码转换)

    排除语法错误:给出的是一个通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序,但有很多语法错误。要求实验者按照原样对源程序进行编辑,汇编后,根据TASM给出的信息对源程序进行修改,知道没有语法错误为止。然后进行链接,并执行相应可

    2024年02月08日
    浏览(62)
  • 单片机汇编延时程序算法详解

    在单片机编程中,延时程序是一项常见的任务。它用于控制程序在执行期间暂停一段时间,以实现特定的时间延迟。延时程序在许多应用中都非常有用,例如控制LED的闪烁频率、定时器的计时等。本文将详细介绍单片机汇编语言中延时程序的算法,并提供相应的源代码。 延时

    2024年02月04日
    浏览(56)
  • 实时数据库测试-汇编小程序

    实时数据库测试-汇编小程序。 hd.asm

    2024年04月28日
    浏览(42)
  • X86_64函数调用汇编程序分析

    %rdi, %rsi, %rdx, %rcx, %r8, %r9分别用于函数调用过程中的前6个参数,对于6的参数存放在栈中传递 %rsp用做栈指针寄存器,指向栈顶 %rbp用作栈框寄存器,指向栈底 %rax用做函数返回值的第一个寄存器 2.1.1 main的C代码实现 2.1.2 main函数对应汇编及其分析 这段汇编代码实现了一个简单的

    2024年02月09日
    浏览(42)
  • [ARM 汇编]高级部分—ARM汇编编程实战—3.3.3 嵌入式应用程序设计实例

    在本章节中,我们将学习如何使用ARM汇编编写一个简单的嵌入式应用程序。我们将以STM32F103微控制器为例,编写一个程序,实现按下按钮时点亮LED的功能。 硬件连接 首先,我们需要将STM32F103微控制器的一个GPIO引脚连接到LED(通过一个合适的电阻),另一个GPIO引脚连接到按钮

    2024年02月10日
    浏览(42)
  • 【汇编】实验12 编写0号中断的处理程序

    记录一下代码

    2024年01月19日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包