使用Visual Studio 2019--调试汇编32位代码的详细步骤
声明:本文使用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位代码的详细步骤的更多相关文章
- Visual Studio 2019及其注册码
Visual Studio 2019 更快地进行代码编写.更智能地执行操作.使用同类最佳IDE 创建未来. 下载Visual Studio 使用从初始设计到最终部署的完整工具集 ...
- Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储
在VS2013中调试Silverlight项目时,提示:无法附加.Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储.请改用64位版本. ...
- CLR调试报错“Visual Studio远程调试监视器 (MSVSMON.EXE) 的 64 位版本无法调试 32 位进程或 32 位转储。请改用 32 位版本”的解决
Win7 64位电脑上进行visual studio的数据库项目的CLR存储过程进行调试时,报错: ---------------------------Microsoft Visual Studio ...
- Visual Studio高级调试技巧
1. 设置软件断点,运行到目标位置启动调试器 方法①:使用汇编指令(注:x64 c++不支持嵌入汇编) _asm 方法②:编译器提供的方法 __debugbreak(); 方法③:使用windows ...
- Visual Studio远程调试
Visual Studio支持调试远程机器上的程序,经过简单设置后,就像调试本地代码一样方便. 第一步:将vs工具里的Remote Debugger文件夹拷贝到目标机器.大致的目录应该是:D:\Pro ...
- rocketmq-cpp-client Visual Studio 2019 编译
rocketmq-cpp-client Visual Studio 2019 编译 rocketmq-cpp-client 是rocketmq c++版本的 所以我们C++ 开发者使用此项目 构建 获 ...
- 总是弹出visual studio 实时调试器 三种解决办法
最近服务器老是弹出visual studio 实时调试器很是郁闷呀.关还关不掉.怎么解决呢 ,现像如下图所示: 下面我们一起来分析一下这种情况的原因: 弹出应用程序: Visual Studio 实时 ...
- Visual Studio 2019 正式发布,重磅更新,支持live share
如约而至,微软已于今天推出 Visual Studio 2019 正式版,一同发布的还有 Visual Studio 2019 for Mac. Visual Studio 2019 下载地址:htt ...
- “宇宙最强” IDE,Visual Studio 2019 正式发布
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 本文由葡萄城翻译并发布 今天凌晨Visual Studio 2019已经正式发布,现在已经可以下载了.使用V ...
随机推荐
- Sql Server 基本使用
一.登录sql server数据库 1.若需要连接本机数据库服务器,服务器名可以采用“local”.“.”“本机Ip”. 2.在连接sql server 之前,确保sql server服务已经启动,如 ...
- AcWing:175. 电路维修(bfs)
达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上. 翰翰的家里有一辆飞行车. 有一天飞行车的电路板突然出现了故障,导致无法启动. 电路板的整体结构是一个R ...
- Ansible常用模块之命令类模块
Command模块 在远程节点上执行命令 [root@tiandong ~]# ansible all -m command -a "ls" 在远程主机上执行ls命令. [root ...
- [CSP-S模拟测试]:走路(期望DP+分治消元)
题目传送门(内部题100) 输入格式 第一行两个整数$n,m$,接下来$m$行每行两个整数$u,v$表示一条$u$连向$v$的边.不保证没有重边和自环. 输出格式 $n-1$行每行一个整数,第$i$行 ...
- vscode如何使用命令面板
vscode如何使用命令面板 方法/步骤 首先找到vscode. 进入,打开页面. 找到查看. 打开找到命令面板. 选择打开,可以看到命令. 下拉还有多个,以及快捷键. ...
- laravel 中first和find区别(总结一)
检索单个模型/集合 除了从指定的数据表检索所有记录外,你也可以通过 find 或 first 方法来检索单条记录.这些方法不是返回一组模型,而是返回一个模型实例: // 通过主键取回一个模型... $ ...
- github搜索不到代码的问题
Hi team, Please check the following three query url :https://github.com/Konctantin/GreyMagic/search? ...
- 更换django自带的下载链接
class Case(models.Model): file_type = MyFileField(verbose_name='file_obj', max_length=256, blank=Tru ...
- oracle表结构表数据导入导出
--------------------------------------imp/exp------------------------------------------------------- ...
- (转)常用 HTTP 状态码对照表
Code 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须 ...