在VC++中使用MASM-构建32位程序的必须配置
2015-03-26 14:40
246 查看
首先,你必须安装如下软件之一:
Visual Studio 2008
、 Visual Studio 2010
、 Visual C++ 2008 Express (sp1)
或者 Visual C++ 2010 Express
。它们都包含了当前版本的 Microsoft Assembler
。当你安装时候,请记住安装路径,稍后我们将会用到这个信息。
你可以到
Visual Studio 的安装目录下的
/vc/bin 目录中查找
ml.exe 已验证
Microsoft Assembler 是否已被安装。例如:
c:/Program Files/Microsoft Visual Studio x.x/vc/bin
。 ("x.x" 可能是
9.0, 10.0, 或者其它的演变形式
)
C:/Irvine 文件夹内。除非你有什么特别的原因,请不要改变这个路径。如果你准备修改安装路径,请阅读改变项目属性 一节的相关内容。
下列文件会被拷贝至
C:/Irvine 目录下:
一个名为
Examles 的子目录中包含了本书中的全部示例以及书中
16 位和
32 位的链接库。
VC+++ ,选择工具
=> 选项
=> 文本编辑器
=> 所有语言
=> 制表符,将制表符和缩进大小都设置为
5 。
打开一个项目
Visual Studio
和 Visual C++ Express
使用一个叫做项目的容器来管理汇编源程序。项目包含了相关的配置的信息,如:汇编器、连接器以及相关库文件的位置。每个项目都有自己的文件夹用来包含属于它的文件的名称与位置。我们已经在
c:/Irvine/Examples/ch03
文件夹下创建了一个名为 Project
的示例项目。
依次执行如下步骤:
启动
Visual Studio 或者
Visual C++ Express
选择文件
=> 打开
=> 项目
/ 解决方案
找到
C:/Irvine/examples/ch03/Project_sample 下的
Project.sln 并打开
在解决方案资源管理器窗口,你可以看到
Project 单词,它是项目的名称
你需要为项目添加一个名为
main.asm 的源文件,在
Project 上单击右键,现在添加
=> 现有项,选择
main.asm 并点击添加按钮
在
main.asm 上双击,打开此文件进行编辑
你在编辑窗口中应该会看到如下内容:
稍后我们将会为你介绍如何以此文件为起点创建你自己的程序。
如果你没有看到类似的信息,可能的原因是项目自从上一次生成后并没有修改。只要选择生成菜单下的重新生成Project就可以了。
"请按任意键继续. . ."是Visual C++ 自动生成的。
恭喜你!你已经成功运行了你的第一个汇编语言程序。
按任意键关闭控制台窗口。
按F10键,启动调试模式
一个黄色的箭头会出现在第一个语句前(call Clrscr),黄色箭头表示这个语句下一步会被执行
按F10执行此语句,继续按F10直到即将执行exit语句
在windows状态栏上应该有一个黑色的窗口图标,打开并查看其中的内容。你应该会在窗口中看到"
MASM program example
"
再按F10结束程序的执行
你可以在调试过程中随时选择调试菜单下的停止调试终止调试。你也可以通过点击工具栏上的蓝色方形按钮。
在call WriteString语句前面的边框内点击鼠标,会出现一个红色的圆点
选择调试菜单下的开始调试,程序运行并停止在断点处同时出现一个黄色箭头
按F10直到程序结束
要移除断点,只需在红色圆点上点击即可。请花几分钟熟悉调试模式的命令,你可以设置更多的断点来运行程序。你也可以使用F11来逐语句运行。
从项目中移除程序而不删除文件,在解决方案资源管理器中文件名上右击,选择从项目中排除。如果你改变主意想把它加回至项目中,在窗口中右击选择添加=>现有项,现在你想添加的文件。
从项目中移除程序并删除源文件,用鼠标选中文件按Del键,或者在文件名上右击选择删除。
从项目中移除main.asm
将c:/Irvine/Examples/ch03/AddSub.asm
的引用添加至项目
生成并运行项目
下图展示了你应该看到的结果,但仅有EAX的值会与此处相同。
Visual Studio 2008
、 Visual Studio 2010
、 Visual C++ 2008 Express (sp1)
或者 Visual C++ 2010 Express
。它们都包含了当前版本的 Microsoft Assembler
。当你安装时候,请记住安装路径,稍后我们将会用到这个信息。
你可以到
Visual Studio 的安装目录下的
/vc/bin 目录中查找
ml.exe 已验证
Microsoft Assembler 是否已被安装。例如:
c:/Program Files/Microsoft Visual Studio x.x/vc/bin
。 ("x.x" 可能是
9.0, 10.0, 或者其它的演变形式
)
安装书中的示例程序
访问此地址 http://kipirvine.com/asm/examples/index.htm ,你可以获取最新版本的链接库与示例程序。示例程序是一个自解压文件,它将文件自动解压至C:/Irvine 文件夹内。除非你有什么特别的原因,请不要改变这个路径。如果你准备修改安装路径,请阅读改变项目属性 一节的相关内容。
下列文件会被拷贝至
C:/Irvine 目录下:
Filename | Description |
cmd.exe | Shortcut to the Windows command-line interpreter (named cmd.exe) |
GraphWin.inc | Include file for writing Windows applications |
Irvine16.inc | Include file used with the Irvine16 link library (16-bit applications) |
Irvine16.lib | 16-bit link function library used with this book |
Irvine32.inc | Include file used with the Irvine32 link library (32-bit applications) |
Link16.exe | 16-bit linker |
Irvine32.lib | 32-bit link function library used with this book |
User32.lib | Basic I/O link library |
Macros.inc | Include file containing macros (explained in Chapter 10) |
SmallWin.inc | Small-sized include file, used by Irvine32.inc |
make16.bat | Batch file for building 16-bit applications |
VirtualKeys.inc | Keyboard code definitions file, used by Irvine32.inc |
Examles 的子目录中包含了本书中的全部示例以及书中
16 位和
32 位的链接库。
生成一个汇编语言示例
将制表符大小设置为5
启动VC+++ ,选择工具
=> 选项
=> 文本编辑器
=> 所有语言
=> 制表符,将制表符和缩进大小都设置为
5 。
打开一个项目
Visual Studio和 Visual C++ Express
使用一个叫做项目的容器来管理汇编源程序。项目包含了相关的配置的信息,如:汇编器、连接器以及相关库文件的位置。每个项目都有自己的文件夹用来包含属于它的文件的名称与位置。我们已经在
c:/Irvine/Examples/ch03
文件夹下创建了一个名为 Project
的示例项目。
依次执行如下步骤:
启动
Visual Studio 或者
Visual C++ Express
选择文件
=> 打开
=> 项目
/ 解决方案
找到
C:/Irvine/examples/ch03/Project_sample 下的
Project.sln 并打开
在解决方案资源管理器窗口,你可以看到
Project 单词,它是项目的名称
你需要为项目添加一个名为
main.asm 的源文件,在
Project 上单击右键,现在添加
=> 现有项,选择
main.asm 并点击添加按钮
在
main.asm 上双击,打开此文件进行编辑
提示:如果你没有看到解决方案资源管理器窗口,请在视图菜单下选择解决方案资源管理器。如果你在解决方案资源管理窗口中没有看到 main.asm ,可能是被其他窗口遮盖的原因。请在解决方案资源管理器窗口的下方点击解决方法资源管理器。 |
稍后我们将会为你介绍如何以此文件为起点创建你自己的程序。
生成程序
接下来,你将会生成(汇编与连接)示例程序。选择生成菜单下的生成Project。在屏幕下方的输出窗口,你将会看到与下面相似的信息。如果你没有看到类似的信息,可能的原因是项目自从上一次生成后并没有修改。只要选择生成菜单下的重新生成Project就可以了。
运行程序
选择调试菜单下的开始执行(不调试),下面这样的控制台窗口将会出现。"请按任意键继续. . ."是Visual C++ 自动生成的。
恭喜你!你已经成功运行了你的第一个汇编语言程序。
按任意键关闭控制台窗口。
当你汇编并连接项目的时候,在项目的/Debug目录下创建了一个名为Project.exe的文件。当你运行程序 的时候这个文件被执行。你可以通过在资源管理器中双击的方式执行它,但是它会一闪而逝。 |
创建你自己的新项目
你可能会想创建自己的新项目,最简单的方式就是将C:/Irvine/examples/Project_sample整个文件将拷贝至一个新的位置。你必须具有目标文件夹的读/写权限。使用调试模式运行示例程序
接下来,你将会在示例程序中设置一个断点,然后使用Visual C++ debugger跟踪程序的运行。按F10键,启动调试模式
一个黄色的箭头会出现在第一个语句前(call Clrscr),黄色箭头表示这个语句下一步会被执行
按F10执行此语句,继续按F10直到即将执行exit语句
在windows状态栏上应该有一个黑色的窗口图标,打开并查看其中的内容。你应该会在窗口中看到"
MASM program example
"
再按F10结束程序的执行
寄存器
如果你想查看寄存器的内容,可以这样做:开始调试程序,选择调试菜单下的窗口子菜单,在下拉列表中选择寄存器。在底部的窗口中将会显示寄存器的内容,在窗口上点击右键勾选标记就可以显示标志寄存器的内容。你可以在调试过程中随时选择调试菜单下的停止调试终止调试。你也可以通过点击工具栏上的蓝色方形按钮。
设置断点
如果你在程序中设置断点,就可以使用调试器全速执行程序直到断点处。在断点处,程序进入单步执行模式。在call WriteString语句前面的边框内点击鼠标,会出现一个红色的圆点
选择调试菜单下的开始调试,程序运行并停止在断点处同时出现一个黄色箭头
按F10直到程序结束
要移除断点,只需在红色圆点上点击即可。请花几分钟熟悉调试模式的命令,你可以设置更多的断点来运行程序。你也可以使用F11来逐语句运行。
生成并运行其它程序
如果你想运行其它示例程序或者创建你自己的程序,你可以编辑main.asm,或者从工程中移除main.asm并加入你自己的.asm文件到项目中。从项目中移除程序而不删除文件,在解决方案资源管理器中文件名上右击,选择从项目中排除。如果你改变主意想把它加回至项目中,在窗口中右击选择添加=>现有项,现在你想添加的文件。
从项目中移除程序并删除源文件,用鼠标选中文件按Del键,或者在文件名上右击选择删除。
添加文件至项目
想项目中添加文件最简单的方法就是在Windows资源管理器中将文件拖拽至项目名称上,该文件的引用(并没有复制)就会添加至项目下。试着进行如下操作:从项目中移除main.asm
将c:/Irvine/Examples/ch03/AddSub.asm
的引用添加至项目
生成并运行项目
下图展示了你应该看到的结果,但仅有EAX的值会与此处相同。
复制源文件
如果你想向项目中添加已存文件的一份拷贝,复制一份至你的项目目录下,在项目名称上右击选择添加=>已有项。相关文章推荐
- 在VC++中使用MASM-构建32位程序的必须配置
- 在VC++中使用MASM-构建16位程序
- VC DataGrid使用问题,在其它电脑上,应用数据程序弹出“未成功配置,应用程序无法启动”
- 在VC中使用directdraw程序配置
- oracle 使用database control 配置数据库时,要求在当前oracle主目录中配置监听程序,必须运行Netca以配置
- 在Win7 32位系统下,VC++ 6.0中配置OpenGL使用环境
- 在使用spring构建项目中,将db配置与程序jar包分离的一种方式
- 在使用spring构建项目中,将db配置与程序jar包分离的一种方式
- oracle 使用database control 配置数据库时,要求在当前oracle主目录中配置监听程序,必须运行Netca以配置
- Windows 7 64bit和Visual Studio 2010下的64位与32位程序配置,dll使用,与性能初步比较
- 使用database control 配置数据库时,要求在当前oracle主目录中配置监听程序,必须运行Netca以配置监听程序,然后才能继续。或者可以选择继续,但是不要使用database cont
- 将QT开发的界面程序封装成DLL,在VC中成功调用(必须有消息循环,所以使用了QTWinmigrate,附CSDN可下载的Demo)
- 使用Gradle自定义配置构建Java程序
- 使用Gradle自定义配置构建Java程序
- 必须运行Netca以配置监听程序,然后才能继续。或者可以选择继续,但是不要使用database control
- 使用database control 配置数据库时,要求在当前oracle主目录中配置监听程序,必须运行Netca以配置监听程序,然后才能继续。或者可以选择继续,但是不要使用database cont
- VS2013下的64位与32位程序配置
- 一次配置 使用opencv库中的函数编写程序需要配置环境
- Jenkins配置令牌使用curl远程构建
- VC++ 发送邮件(使用邮件进行程序异常报告)