在Microsoft Visual C++中使用MASM(未完)
来源:互联网 发布:32位64位系统区别 知乎 编辑:程序博客网 时间:2024/05/16 10:34
原文地址:Getting Started with MASM,在翻译过程中,我省略了一些无关紧要的内容.而且有些句子我没按原文翻译,而是根据我的理解翻译的.下面是译文
如果你最近购买了《Intel汇编语言程序设计》第五版,你可能想安装相关的软件以便开始学习,这个教程将告诉你如何做。
- 构建32位应用程序必要的安装
- 构建16位应用程序
- 设置工程属性
- 创建新工程
- 生成资源列表文件
- 使用Visual Studio debugger
- MASM语法着色
- 使用批处理文件进行编译、连接与调试
构建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
- Visual C++ 2008 Express
- Visual C++ 2005 Express
请在安装的过程中记录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.exe16-bit linkerIrvine32.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.batBatch file for building 16-bit applicationsVirtualKeys.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.datamyMessage BYTE "MASM program example",0dh,0ah,0.codemain PROC call Clrscr mov edx,OFFSET myMessage call WriteString exitmain ENDPEND 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.asm1>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,选择拷贝生成的文件。
- 在Microsoft Visual C++中使用MASM(未完)
- 在VC++中使用MASM-MASM语法高亮
- 在VC++中使用MASM-概述
- 在VC++中使用MASM-创建新项目
- 在MASM中使用间接远跳转
- 在 Microsoft Visual Studio 2010 中使用 gtkmm
- 在IAR中使用Microsoft visual sourcesafe工具注意事项
- 在VC++中使用MASM-构建16位程序
- 在VC++中使用MASM-项目属性设置
- expriment : 在MASM工程中使用Unicode字符串
- Microsoft Visual Studio C 运行时库在 XXX.exe 中检测到一个错误。
- Microsoft Visual Studio C 运行时库在 XXX.exe 中检测到一个错误
- Microsoft Visual Studio C 运行时库在 XXX.exe 中检测到一个错误。
- HOW TO:在 Microsoft Visual Basic 6.0 中使用正则表达式[转自MSDN]
- 在团队开发环境中使用 Visual Studio .NET --- Mark White 来自Microsoft Corporation
- VS2008环境中使用masm
- VS2008环境中使用masm
- 在Visual C 中使用内联汇编(_emit)(精华)
- Sql Server 2005 ROW_NUMBER 函数实现分页
- 如何在两个对话框之间进行消息传递
- Oracle重新安装报SID已经存在
- 给自己网站减肥
- qq聊天
- 在Microsoft Visual C++中使用MASM(未完)
- Windows经典样式 (Classic Style)下不能自动接收WM_NCMOUSELEAVE的问题
- 什么是胖客户端和瘦客户端?什么是哑终端?
- 触摸屏锁屏(Touch Lock)功能实现
- OO系统分析员之路--用例分析系列
- js获取浏览器高度和宽度值(多浏览器)
- Authentication vs. Authorization 验证与授权[整理]
- JBPM整合SSH常常老是出现的异常
- VIJOS不打算上了!试用了一下VS 2010,还行.