记得当初学习汇编的时候,由于时间紧张,基本上没怎么整理汇编的开发环境的使用方式。当初也就是用命令还随便编译了几个简单的程序而已,也只能算是小打小闹。好歹现在有时间了,闲来无事,于是重新拾起汇编程序,把用VS2005开发汇编应用程序的方法和大家分享。废话少说,下边开始我们的VS2005下汇编的第一个HelloWord程序。
第一步:准备工具。
下载安装Visual Studio 2005,从链接 http://ishare.iask.sina.com.cn/f/7754633.html?from=isnom 注册下载《Intel汇编语言程序设计第四版》的随书光盘。里边的资料稍后会用到。下载后解压,若不能正常解压,直接打开拖拽出来即可。解压后将setup运行,安装MASM6.15,路径按照默认在C:/Masm615不要修改。好的,准备工作完成。
第二步:建立工程。
打开VS2005,点击 文件->新建->项目,选择Win32 控制台应用程序,输入项目名(HelloWord),点击确定。
点击下一步,勾选空项目,点击完成。
进入项目后,右键源文件->添加->新建项,选择代码,C++文件,输入汇编源文件名称,以.asm为后缀(HelloWorld.asm),点击添加.
在源文件中键入HelloWorld代码,32位汇编代码如下:
TITLE HelloWorld (HelloWorld.asm) ;标题
comment *
创建的第一个HelloWorld 32位汇编程序
*
INCLUDE Irvine32.inc ; 32位汇编程序必须的包含文件
.data ;数据段
;要显示的字符串,后跟回车/换行和结尾符
hello byte "Helloworld,this is my first assemble programe !",0dh,0ah,0
.code ;代码段
main PROC ;主程序入口
mov edx,offset hello ;传递参数
call WriteString ;显示字符串
exit ;主程序退出
main ENDP
END main
第三步:配置项目。
针对每一个项目都需要重新配置,虽然有点繁琐,但是只是在项目刚建立的时候配置,配置完后就不需要管了。
1. 右击项目名称->自定义生成规则, 打开“Visual C++ 自定义生成规则文件”窗口, 勾选可用的规则文件“MicrosoftMacro Assembler”,然后单击“确定”按钮关闭窗口。
2. 如果自定义生成规则成功,右击相应项目名称,选择“属性”菜单项,打开“属性页”窗口,在左手框中会出现“Microsoft Macro Assembly”配置属性,否则没有。设置Microsoft Macro Assembly的General的Include Paths项目设置为刚才安装的MASM6.15目录的INCLUDE文件加夹,应该是C:/Masm615/INCLUDE。这么做正是和代码的INCLUDE命令相呼应。INCLUDE文件夹下有文件Irvine32.inc。
3. 还是属性页,展开“连接器”,选择“输入”属性,在右手框中的“附加依赖项”属性后键入值Irvine132.lib,即连接库文件名。这样Irvine32.inc就有依赖库了。
4. 针对依赖库,上边的做法还不够,除非你把他拷贝到当前的程序目录中,否则会找不到,因此我们还是最好指定他们的路径为妙。在安装的Masm6.15目录C:/Masm615/LIB有这个库文件,所以我们应该指定指定“链接器/常规/附加库目录”属性值为C:/Masm615/LIB。
至此,项目的配置工作完成。
第四步:调试运行。
选择调试->启动调试或者开始运行,可以调或者运行试该项目。方法和C++项目相同,可以添加断点,监视变量等,这里不再赘述。下边你可以开始自己的32汇编程序的开发之旅了。
附加说明:
这里主要介绍了32为保护模式汇编程序的编写,对于16位实模式或者虚拟8086汇编程序的开发经过我的测试貌似这么做不大支持,大家感兴趣可以自己补充。
如果实在需要编译调试16位程序的话,可以使用刚才安装的Masm6.15自带的工具make32.bat(理论上应该使用make16.bat,但是经测试make16.bat不能生成.exe文件,而make32.bat可以)进行开发。详细使用方式可以参考《Intel汇编语言程序设计第四版》(下载链接:http://ishare.iask.sina.com.cn/f/11209526.html )的附录A。大家感兴趣可以自己学习。