使用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 .386 .model flat,stdcall .stack 4096 ExitProcess proto,dwExitCode:dword .code main proc mov eax,5 add eax,6 invoke ExitProcess,0 main endp end main
OK!ctrl+F5,运行,走你!
nice!
F5调试:
先打个断点
来深入了解寄存器吧!
如果没有寄存器窗口
开启汇编二进制之旅!
wait! 还有一个 列表文件
没有.lst后缀的列表文件
配置:
1、右键项目,属性
2、配置
3、重新运行(如果出现LNK 1104的错误,并且确定路径没问题,可以多尝试几次重新创建项目)
查看项目目录下:
有了!它可以帮助更好的理解汇编代码。