------------------------------------ 版权信息 ------------------------------------
此文链接: http://blog.csdn.net/doniexun/article/details/45268365
此文作者: Windness版权说明: 此文为作者经过检索网上资源及根据个人开发经验整理所得,所有参考文献均已在文末标注,转载请务必保留此版权信息!
------------------------------------ 版权信息 ------------------------------------
学一门语言,最好的方法便是在实践中学习。对于不少初学者来说,首先要面临的是如何搭建开发平台/环境的问题。由于汇编语言的特殊性,不少初学者会担心自己直接对寄存器进行操作会不会导致系统崩溃或者系统硬件损坏,再加上现如今高级程序设计语言大行其道,真正需要写汇编语言的情境已经不那么多了,所以不少初学汇编语言的同学都还停留在纸上谈兵的状态。
本人初次学习汇编语言已经是五年前,但一直都未亲自实践过,最近工作上需要用到反汇编二进制可执行文件,因此计划重新拾起曾经学过的汇编语言,以便能够顺利完成手头上的项目。以下是搭建基于DOSBOX+MASM32的汇编语言开发环境记录。
1 工具准备
1)下载DOSBOX
工具介绍:DOSBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的移植到其他的平台。目前,DOSBox 已经支持在 Windows、Linux、Mac OS X、BeOS 、palmOS、Android 、webOS、os/2等系统中运行。不少DOS下的游戏都可以直接在该平台上运行。
工具官网:http://www.dosbox.com/
项目主页:http://sourceforge.net/projects/dosbox/
下载链接:http://sourceforge.net/projects/dosbox/files/dosbox/0.74/DOSBox0.74-win32-installer.exe/download(32位)
2)下载MASM32
工具介绍:MASM32是国外的MASM爱好者Steve
Hutchesson自行整理和编写的一个软件包,目前最高版本为11r版。MASM32并非指Microsoft的MASM宏汇编器,而是包含了不同版本工具组建的汇编开发工具包。它的汇编编译器是MASM6.0以上版本中的Ml.exe,资源编译器是Microsoft Visual Studio中的Rc.exe,32位链接器是Microsoft
Visual Studio中的Link.exe,同时包含有其他的一些如Lib.exe和DumpPe.exe等工具。
工具官网:http://www.masm32.com/
下载链接:http://www.masm32.com/downloads
注意:也可以直接下载由参考资料3作者提供的masm工具压缩包,里面包含必要的汇编、链接、调试工具(百度网盘下载)。
2 安装工具
1)安装DOSBOX
安装下载到的DOSBox0.74-win32-installer.exe,直接一路Next完成安装。
2)配置DOSBOX
创建一个用于保存汇编工具(如MASM、Link、DEBUG等工具)和汇编文件(*.asm)的目录,如:E:\DEBUG。
打开DOSBOX的安装根目录(默认安装路径:C:\Program Files\DOSBox-0.74),双击文件DOSBox 0.74 Options.bat,运行该批处理文件后系统会用文本文档Notepad打开配置文件dosbox-0.74.conf。
将光标定位到dosbox-0.74.conf文件的[autoexec]节点(一般在该文件末尾),在文件中添加以下内容:
MOUNT C D:\DEBUG # 将目录D:\DEBUG挂载为DOSBOX下的C: set PATH=$PATH$;D:\DEBUG<span style="white-space:pre"> </span> # 将D:\DEBUG写入环境变量PATH中
3)安装MASM32
解压安装下载到的masm32v11r.zip,按默认配置安装即可。
安装结束后,需要将汇编工具DEBUG.EXE、EDIT.EXE、LINK.EXE、MASM.EXE等工具复制到E:\DEBUG文件夹下。
3 样例程序
运行DOSBOX,在命令符C:\>下输入命令:EDIT文件名.asm,启动EDIT.EXE进入代码编辑状态,并输入如下样例程序:
code segment assume cs:code start: mov ax,5h mov bx,6h add ax,bx mov ah,4ch int 21h code ends end start
保存文件后返回DOSBOX的命令行,输入命令:MASM文件名.asm,生成目标文件文件名.OBJ(生成过程中可以修改目标文件名,直接回车可保持默认目标文件名)。
输入命令:LINK文件名.OBJ,链接生成可执行文件文件名.EXE。
输入命令:DEBUG文件名.EXE,即可对程序进行调试。
4 参考资料
1)MASM百度百科:http://baike.baidu.com/view/1754206.htm
2)DOSBOX百度百科:http://baike.baidu.com/view/716885.htm
3)Win8下用DOSBox编写汇编语言:http://www.tuicool.com/articles/v2A3mm