当前位置:文档之家› 使用VS2015调试罗云彬的32位汇编语言源代码

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

第 1 页 共 10 页
使用VisualStudio2015
调试罗云彬的32位汇编语言附属光盘中的汇编源代码
(第三版琢石成器版)

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

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

在工程中的“源文件”文件夹新建“.asm”类型的源文件:
在这里会发现不能新建“.asm”类型的文件,选择“C++文件(.cpp)”,然后在文件结尾
加上扩展名.asm。
第 3 页 共 10 页

现在项目和源文件都有了,但是这毕竟是个VC++的空项目,VC++项目在默认情况下是
不会编译.asm类型的源文件的。所以你点击“生成解决方案”发现根本什么都没有生成,
Debug文件夹是空的,就会出现这样的现象。
事实上在创建源文件时,可以使用任意格式的源文件。例如使用文本文件:
第 4 页 共 10 页
要经过下面两步设置。
第一步,右击解决方案选择“生成依赖项”→“生成自定义”:

把“MASM”那项勾上,确定。
第 5 页 共 10 页

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

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

选择 配置属性->连接器。
把调试->生成调试信息改为“是(/Debug)”。在Visual Studio 2015中默认是“true”;
把系统->子系统改为“控制台(/SUBSYSTEM:CONSOLE)”:
第 6 页 共 10 页


罗云彬的win32汇编程序设计中,汇编文件中包含了一些后缀名为inc的头文件,这种
头文件在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为例。
第 7 页 共 10 页

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

源代码窗口如下:
第 8 页 共 10 页

反汇编窗口如下:

反汇编窗口必须在调试状态下才能打开。
寄存器窗口如下:

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

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

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

 添加.lib库文件:
这里以masm32的“include”、“lib”为例。
也可以在配置属性->链接器->常规->附加库目录中把你的系统以外的附加库所在的目
录填上去,这样链接器搜索的时候才能找到附加库在哪。如果已经在配置属性->VC++目录中
添加了系统以外的附加库,则在这里可以不必添加。
第 10 页 共 10 页

相关主题