原文地址:Getting Started with MASM ,在翻译过程中,我省略了一些无关紧要的内容.而且有些句子我没按原文翻译,而是根据我的理解翻译的.下面是译文
如果你最近购买了《Intel汇编语言程序设计》第五版,你可能想安装相关的软件以便开始学习,这个教程将告诉你如何做。
构建32位应用程序必要的安装
首先,你必须安装Visual Studio或者Visual C++ Express:
- 如果你安装的是Visual Studio 2008 Professional或者Team Suite,这些产品已经自带了MASM9.0
- 如果你安装的是Visual C++ 2008 Express Service Pack 1, 它包含了MASM 9.0.
- 如果你安装的是Visual C++ 2005 Express, 你必须下载MSAM8.0
下载 Microsoft Express Edition
请在安装的过程中记录C++编译器的安装位置,稍后这个信息将被用到。
你可以通过在Visaul Studio安装目录下的/vc/bin文件夹下寻找ml.exe来验证MASM是否被成功安装,
例如:c:/Program Files/Microsoft Visual Studio 9.0/vc/bin
下载并安装Microsoft Assembler 8.0: 访问MASM 8.0下载站点 .请按照微软页面上的提示进行下载与安装。注意:这个版本的MASM仅适用于visual c++ 2005速成版。
下一步:安装书中的例子
点击此链接 下载最新的链接库与例子。下载得到的是一个自解压文件,默认的解压位置为c:/Irvine ,除非你有什么特殊的用途,请不要修改路径。如果你准备修改安装路径,请阅读修改工程属性s .
下列文件将会被拷贝至c:/Irvine directory下:
Filename | Description |
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 |
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 |
在 Examples 子目录下包含了书中所有的例子。
建立一个简单的汇编语言程序
将Tab大小设置成5
启动Visual C++速成版,在Tools 菜单下选择Options 。依次选择 Text Editor , All Languages , Tabs :
将Tab大小设置成5。
打开工程
在Visual Studio和Visual C++ Express中,一个汇编源文件必须被放置在一个叫工程的容器中。一个工程 包含了相关的配置信息,如:汇编器、连接器的位置及必要的库。一个工程有属于自己的文件夹,相关的文件被放置其中。我们已经在c:/Irvine/Examples 下创建了一个示例工程,名字叫Project_Sample 。
按顺序执行下列步骤:
- 启动Visual Studio 或 Visual C++ Express.
- 如果你使用的是Visual Studio, 在File菜单下选择Open Project,如果你使用的是Visual C++ Express,选择Open -->Project/Solution.
- 浏览至c:/Irvine/Examples/Project_Sample 文件夹并选择 Project.sln .
- 在Solution Explorer窗口中 , 双击main.asm打开。 (Visual Studio如果弹出对话框询问编码方式,点击OK即可。)
在编辑窗口中,你应该看到如下程序:
TITLE MASM Template (main.asm) ; Description: ; ; Revision date: INCLUDE Irvine32.inc .data myMessage BYTE "MASM program example",0dh,0ah,0 .code main PROC call Clrscr mov edx,OFFSET myMessage call WriteString exit main ENDP END main |
编译并链接程序
编译并链接例子程序:
- 如果你使用的是Visual C++ Express, 在Build 菜单下选择Build Solution 。
- 如果你使用的是Visual Studio, 在Build 菜单下选择Build Project 。
在屏幕底部的输出窗口中,你会看到和下面类似的信息:
1>------ Build started: Project: Project, Configuration: Debug Win32 ------ 1>Assembling... 1>Assembling: ./main.asm 1>Linking... 1>Embedding manifest... 1>Build log was saved at "file://g:/masm/Project_sample/Debug/BuildLog.htm" 1>Project - 0 error(s), 0 warning(s) ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== |
运行程序
在Debug菜单下选择Start without Debugging ,应该会出现类似控制台窗口。
"Press any key to continue..."是Visual C++ Express自动生成的。
恭喜你,你已经运行了你的第一个汇编语言程序。
按任意键关闭窗口。
当你编译并链接这个project,在工程的Debug目录下会生成一个名叫Project.exe的文件,它在你运行工程时被执行。如果你双击执行此程序,它仅仅会一闪即逝,因为在程序运行完毕之后,命令行被自动关闭了。 |
创建一个新的工程
你可能想创建一个属于自己的工程,最简单的方法是复制 c:/Irvine/Examples/Project_Sample 整个目录内容到一个新的位置。请确认在新的目录下你有读写的权限。
在调试模式下运行示例程序
在这一步中,你将会在程序中设置断点,使用Visual C++的调试器单步跟踪程序的执行。
- 按F10启动调试模式。
- 在程序的第一条语句前会出现一个黄色的箭头,它表示这一条语句将在下一步被执行。
- 按F10执行当前语句,继续按F10直到程序将要退出。
- 在Windows的状态栏上会显示一个黑色的窗口图标,打开它查看命令行的内容,你应该会看到"MASM program example".
- 再次按F10结束程序。
寄存器
如果你想查看寄存器的状态,执行下列操作:开始调试程序,在Debug菜单下选择Windows,在下拉菜单中选择Registers。在窗口的底部将会显示寄存器的内容。在窗口上右击,勾选Flags,这样将会显示标志寄存器的内容.
你可以通过在Debug菜单下选择Stop Debugging在任意时刻终止调试,也可以通过在工具栏上点击蓝色的方形按钮达到相同的目的。
设置断点
如果在程序中设置了断点,那么程序会在运行到断点处暂停并进入单步跟踪模式。
- 在call WriteString这条语句的左边的边框上点击鼠标左键,会出现一个红色的圆点。
- 在Debug菜单下选择Start Debugging,程序开始运行并在断点处暂停,出现黄色箭头。
- 按F10直到程序结束。
你可以通过在红色圆点上点击来移除断点。
建立并运行其它程序
如果你想运行其它示例程序或者你自己的程序。你可以编辑main.asm,或者移除main.asm然后插入其它.asm文件到工程中。
- 从工程中移除文件而不删除它。在Solution Explorer窗口中,在文件名上点击右键,选择Exclude from Project。如果你改变想法并决定将它重新加入到工程中,在窗口上点击右键,选择Add-->Existing item并选择你想加入的文件。
- 从工程中移除文件并删除它,选择文件然后点击Del键,或者在文件名上右击,选择Remove。
向工程中添加文件
最简单的方法是用鼠标拖拽一个汇编语言源文件名到Solution Explorer窗口中,这样一个文件的引用就会被插入到工程的目录中。现在就尝试一下:
- 从工程中移除main.asm文件。
- 将c:/Irvine/Examples/ch03/AddSub.asm文件的引用加入到工程中。
- 建立并运行工程。
你应该会在控制台窗口看到如下类似内容:
拷贝源文件
如果你想拷贝一份源文件到工程中,请使用资源管理器拷贝文件至工程目录下,然后在Solution Explorer窗口中点击右键选择Add-->Existing Item,选择拷贝生成的文件。