使用VS2015调试罗云彬的32位汇编语言源代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用VisualStudio2015

调试罗云彬的32位汇编语言附属光盘中的汇编源代码

(第三版琢石成器版)

整理:太虚野老

本文介绍使用Visual Studio 2015 调试汇编源代码。以罗云彬的《Windows环境下32位汇编语言程序设计(最新琢石成器版)》附属光盘中的汇编源代码为例。

1.创建ASM项目

打开Visual Studio 2015,选择新建一个VC++项目。选择“空项目”,输入项目名称,点确定。

在工程中的“源文件”文件夹新建“.asm”类型的源文件:

在这里会发现不能新建“.asm”类型的文件,选择“C++文件(.cpp)”,然后在文件结尾加上扩展名.asm。

现在项目和源文件都有了,但是这毕竟是个VC++的空项目,VC++项目在默认情况下是不会编译.asm类型的源文件的。所以你点击“生成解决方案”发现根本什么都没有生成,Debug文件夹是空的,就会出现这样的现象。

事实上在创建源文件时,可以使用任意格式的源文件。例如使用文本文件:

要经过下面两步设置。

第一步,右击解决方案选择“生成依赖项”→“生成自定义”:

把“MASM”那项勾上,确定。

第二步,右击你创建的.asm源文件,选择属性,在配置属性->常规->项类型下拉菜单中选择“Microsoft Macro Assembler”。这样就指定了你源文件的类型是.asm格式的,如果不指定默认就是按照.cpp也就是c++语法去编译自然是行不通的。

设置这些之后还要去修改项目配置,这样程序才能得以运行。这包括是否连接其他的库文件(.lib)、是否调试、子系统的原型环境。这些全部都在项目属性中设置。打开项目属性的方法:你可以在刚才右键点“生成自定义”那里选择最下面的属性,也可以在项目选项卡里找到“属性”一项然后选择。

选择配置属性->连接器。

把调试->生成调试信息改为“是(/Debug)”。在Visual Studio 2015中默认是“true”;

把系统->子系统改为“控制台(/SUBSYSTEM:CONSOLE)”:

头文件在vs的include中是没有的,需要从masm32中引用过来,所以需要添加如下目录:

masm32中的inc的头文件包含在include目录中。为了获得masm32的include目录,需要单独下载、安装masm32。include目录在 masm32安装目录的根目录下。

有人说为什么lib文件不用添加过来,因为masm中的lib和vs中的lib本来就是一样的,直接用vs的就可以了,至此就可以编译调试。

罗云彬的win32汇编程序设计中,有一些汇编源代码在Visual Studio 2015中不能识别断点。例如:附属光盘\Chapter02\Test\Test.asm。

2.调试运行

写好汇编代码之后,“生成”→“生成解决方案”。

生成的可执行文件名为“工程名.exe”,而不是以汇编源代码文件的名字命名。

这里以附属光盘\Chapter04\FirstWindow\FirstWindow.asm为例。

设置断点后,按F5调试。

调试开始后,点击“调试”→“窗口”,可以打开“反汇编窗口”、“寄存器窗口”等:

源代码窗口如下:

反汇编窗口如下:

反汇编窗口必须在调试状态下才能打开。

寄存器窗口如下:

可以看到寄存器窗口打开之后,能看到各个寄存器当前的状态。寄存器窗口必须在调试状态下才能打开。

如果还要连接其他的系统.lib库文件,在配置属性->连接器->输入->附加依赖项选择“编辑”,把要链接的库文件名添加进去。

如果需要系统以外的 .inc文件和.lib库文件,则在配置属性->VC++目录中添加。

●添加.inc文件:

●添加.lib库文件:

这里以masm32的“include”、“lib”为例。

也可以在配置属性->链接器->常规->附加库目录中把你的系统以外的附加库所在的目录填上去,这样链接器搜索的时候才能找到附加库在哪。如果已经在配置属性->VC++目录中添加了系统以外的附加库,则在这里可以不必添加。

相关文档
最新文档