声明:本文使用32位masm,代码与16位,64位不同

---------------------------------------------------------------------------------------------------------------------------

遇到问题:

1、LINK 1104:

在网上找了很久,并没有解决问题。

解决方法:

点击visual studio编译后的错误提示:LINK 1104,查看官方文档

其中一条原因:路径过长!(= =,没错,就是这个)

我遇到的情况是:在路径下创建项目,第一个编写的文件正常运行,修改文件名或创建新文件后编译报错:LINK 1104

我的路径是:D:\project\Git\Assembly\Assembly Language For x86 Processors\chapter1

修改路径:D:\project\Git\

没有问题!

---------------------------------------------------------------------------------------------------------------------------------

1、官方下载安装器,安装社区版

2、选择:使用C++的桌面开发(或者选择:使用C++的游戏开发)

选择安装位置,共需要8G左右,占用我C盘2.多G(我的强迫症在吼)

3、克隆或签出代码

登录

and then,如果没有远程库需要先创建一个,不创建也没关系

3、安装扩展

再顺便安装个汇编的代码高亮

4、创建第一个汇编项目:AddTwo.asm(这不是我想要的Helloworld!)

OK,上图

双击或者点击“下一步”

关键来了———生成自定义:

钩选masm(.targets,.props)

来创建.asm文件,或者右键“源文件”--“添加”--“新建项”

画重点:不要用“Add New File”扩展

用插件快速创建的文件报错:

then,回到正道:(为什么不用:ctrl+shift+A创建)

Irvine 大佬的代码(学汇编可以看Assembly Language for x86 Processors的中文看版:《汇编语言 基于x86处理器》):

; AddTwo.asm - adds two 32-bit integers.
; Chapter 3 example .
.model flat,stdcall
.stack
ExitProcess proto,dwExitCode:dword .code
main proc
mov eax,
add eax, invoke ExitProcess,
main endp
end main

OK!ctrl+F5,运行,走你!

nice!

F5调试:

先打个断点

来深入了解寄存器吧!

如果没有寄存器窗口

开启汇编二进制之旅!

wait! 还有一个 列表文件

没有.lst后缀的列表文件

配置:

1、右键项目,属性

2、配置

3、重新运行(如果出现LNK 1104的错误,并且确定路径没问题,可以多尝试几次重新创建项目)

查看项目目录下:

有了!它可以帮助更好的理解汇编代码。

使用Visual Studio 2019--调试汇编32位代码的详细步骤的更多相关文章

  1. Visual Studio 2019及其注册码

    Visual Studio 2019 更快地进行代码编写.更智能地执行操作.使用同类最佳IDE 创建未来.     下载Visual Studio         使用从初始设计到最终部署的完整工具集 ...

  2. Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储

    在VS2013中调试Silverlight项目时,提示:无法附加.Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储.请改用64位版本. ...

  3. CLR调试报错“Visual Studio远程调试监视器 (MSVSMON.EXE) 的 64 位版本无法调试 32 位进程或 32 位转储。请改用 32 位版本”的解决

    Win7 64位电脑上进行visual studio的数据库项目的CLR存储过程进行调试时,报错: ---------------------------Microsoft Visual Studio ...

  4. Visual Studio高级调试技巧

    1. 设置软件断点,运行到目标位置启动调试器 方法①:使用汇编指令(注:x64 c++不支持嵌入汇编) _asm 方法②:编译器提供的方法 __debugbreak(); 方法③:使用windows ...

  5. Visual Studio远程调试

    Visual Studio支持调试远程机器上的程序,经过简单设置后,就像调试本地代码一样方便. 第一步:将vs工具里的Remote Debugger文件夹拷贝到目标机器.大致的目录应该是:D:\Pro ...

  6. rocketmq-cpp-client Visual Studio 2019 编译

    rocketmq-cpp-client Visual Studio 2019 编译 rocketmq-cpp-client 是rocketmq c++版本的 所以我们C++ 开发者使用此项目 构建 获 ...

  7. 总是弹出visual studio 实时调试器 三种解决办法

    最近服务器老是弹出visual studio 实时调试器很是郁闷呀.关还关不掉.怎么解决呢 ,现像如下图所示: 下面我们一起来分析一下这种情况的原因: 弹出应用程序: Visual Studio 实时 ...

  8. Visual Studio 2019 正式发布,重磅更新,支持live share

    如约而至,微软已于今天推出 Visual Studio 2019 正式版,一同发布的还有 Visual Studio 2019 for Mac. Visual Studio 2019 下载地址:htt ...

  9. “宇宙最强” IDE,Visual Studio 2019 正式发布

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 本文由葡萄城翻译并发布 今天凌晨Visual Studio 2019已经正式发布,现在已经可以下载了.使用V ...

随机推荐

  1. HDU 5115 Dire Wolf ——(区间DP)

    比赛的时候以为很难,其实就是一个区间DP= =..思路见:点我. 区间DP一定要记住先枚举区间长度啊= =~!因为区间dp都是由短的区间更新长的区间的,所以先把短的区间更新完.. 代码如下: #inc ...

  2. Hbase底层解析

    hfile+compaction 原理 ​ 用户数据写入先写WAL,再写缓存,满足一定条件后缓存数据会执行flush操作真正落盘,形成一个数据文件HFile.太多数据文件会导致数据查询IO次数增多,因 ...

  3. C++中void和void*指针的含义 (指针类型的含义)

    转载自:http://blog.csdn.net/lee_shuai 指针有两个属性:指向变量/对象的地址和长度,但是指针只存储地址,长度则取决于指针的类型:编译器根据指针的类型从指针指向的地址向后寻 ...

  4. dom4j读写XML文档

    dom4j 最常用最简单的用法(转) 要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/目前最新dom4j包下载地址:http:/ ...

  5. 基于XML的AOP配置(2)-环绕通知

    配置方式: <aop:config> <aop:pointcut expression="execution(* com.itheima.service.impl.*.*( ...

  6. LeetCode 137. 只出现一次的数字 II(Single Number II)

    题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: ...

  7. HashMap三两事

    前言 JDK8中对HashMap做了优化,依然是用数组存储数据,但是扩容时采用双链表的方式避免了高并发情况下导致出现循环链表的问题,另外也引入了红黑树,提高碰撞元素的搜索速度. 一段代码 下面这段代码 ...

  8. DatabaseLibrary数据库测试

    DatabaseLibrary常用关键字 关  键  字 描   述 Connect To Database 连接数据库 Connect To Database Using Custom Params ...

  9. [go]go环境安装-解决安装包不能访问golang.org问题

    安装go和vscode vscode插件列表选择go,安装即可,其他插件暂不安装 手动安装一些vscode配套的调试工具等 直接vscode-go,然后点下面的go-tools就能找到 go get ...

  10. 找出所有从根节点到叶子节点路径和等于n的路径并输出

    //找出所有从根节点到叶子节点路径和等于n的路径并输出 Stack<Node> stack = new Stack<Node>(); public void findPath( ...