声明:本文使用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. “美登杯”上海市高校大学生程序设计邀请赛 (华东理工大学) E 小花梨的数组 线段树

    题意 分析 预处理出每个数的最小素因子,首先可以知道\(minprime(x*minprime(x))=minprime(x)\),我们用线段树维护区间最大值\(mx[p]\),注意这里的最大值并不是 ...

  2. 树状数组(BIT)

    树状数组 树状数组是在线段树的结构上改造而来数据结构,主要用于完成: 给定一个初始值全为0的数列 ①给定i,计算返回a1+a2+--+ai的值 ②给定i和x,执行ai+=x BIT的求和 ll sum ...

  3. 23.Python位运算符详解

    位运算符通常在图形.图像处理和创建设备驱动等底层开发中使用.使用位运算符可以直接操作数值的原始 bit 位,尤其是在使用自定义的协议进行通信时,使用位运算符对原始数据进行编码和解码也非常有效. 位运算 ...

  4. R语言:时间的转化

    一般使用R从数据库导出来的时间数据一般都不是我们能看的懂的(具体是什么格式的我也忘记了),需要做如下转化 as.Date(time,origin = '1970-01-01') 最近从网上爬下来的时间 ...

  5. [学习笔记] Uplift Decision Tree With KL Divergence

    Uplift Decision Tree With KL Divergence Intro Uplift model 我没找到一个合适的翻译,这方法主要应用是,探究用户在给予一定激励之后的表现,也就是 ...

  6. Windows 全绿色安装Mysql

    1.从Oracle官网上下载Mysql的Windows安装包,注意要下载Zip文件 2.将Mysql的Zip文件下载到本地电脑指定目录下 3.配置my.inia. 在<安装目录>下创建一个 ...

  7. DFA和NFA的区别

    正则表达式引擎分成两类,一类称为DFA(确定性有穷自动机),另一类称为NFA(非确定性有穷自动机).两类引擎要顺利工作,都必须有一个正则式和一个文本串,一个捏在手里,一个吃下去.DFA捏着文本串去比较 ...

  8. Dao操作的抽取

    package com.loaderman.demo.c_jdbc; public class Admin { private int id; private String userName; pri ...

  9. 六十六:CSRF攻击与防御之CSRF防御之ajax防御和ajax封装

    app里面还是要绑定CSRFProtect from flask_wtf import CSRFProtect # flask_wtf 已经提供CSRF的防御手段CSRFProtect(app) # ...

  10. Access denied for user XX

    解决方法:将pom.xml中的mysql-connector-java降低版本(直接去maven仓库复制:https://mvnrepository.com/),比如: <!-- https:/ ...