使用Visual Studio 2019--调试汇编代码

Posted slothrbk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Visual Studio 2019--调试汇编代码相关的知识,希望对你有一定的参考价值。

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

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

遇到问题:

1、LINK 1104:

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

解决方法:

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

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

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

我的路径是:D:projectGitAssemblyAssembly Language For x86 Processorschapter1

修改路径:D:projectGit

没有问题!

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

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的错误,并且确定路径没问题,可以多尝试几次重新创建项目)

查看项目目录下:

技术图片

 技术图片

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

 

以上是关于使用Visual Studio 2019--调试汇编代码的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2019 UTF-8编码调试显示中文

Visual Studio 2019 不会调试 Azure Function V2

使用 Visual Studio 2019 和 cmake 调试 Yaml_cpp

Visual Studio 2019 调试断言失败

如何在 Microsoft Visual Studio 2019 中调试 nestjs 程序?

无法在 Web 服务器上开始调试。未出现 Visual Studio 2019 远程调试器 (MSVSMON.EXE)