购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 MASM汇编语言软件

MASM是Microsoft Macro Assembler的缩写,是微软公司为x86微处理器家族开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm,是Windows下开发汇编的良好工具。它与Windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在Windows下进行开发。

为了MASM用户的方便,有MASM32的项目把程序员所写的程序库(library)、程序示例(sample code)以及说明文件集合在一起,也有很多网上论坛在支持MASM。

一些著名的开发环境,如Visual Basic、Visual C++、EasyCode等IDE,为MASM提供可视化(visual)的能力。虽然这个产品上市多年,但它仍然是最受各方支持的汇编器之一。

对于64位Windows系统,以下教程适用。32位请见后面注解。

第一步 下载并安装DOSBOX程序,并将包含“EDIT.COM”、“MASM.EXE”、“LINK.EXE”、“DEBUG.EXE”这四个必需文件的masm文件夹放置在盘根目录下,此处示例为D盘,如图2-13所示。

图2-13

DOSBOX的作用是允许用户在64位下使用32、16位的软件。如果不使用,会出现程序不兼容的情况。(由于两个窗口是一起作用的,所以不要关掉任何一个窗口)

第二步 双击打开DOSbox,出现两个DOS对话框,如图2-14所示。

图2-14

第三步 在较小的框中输入命令:mount c d:\masm

这一命令的作用是将DOSBOX的虚拟盘转变到本地的D盘masm文件夹。

回车后将当前路径指到C盘,也就是实际的D盘masm文件夹,如图2-15所示。

图2-15

第四步 键入edit,进入edit界面,如图2-16所示。(如果无效,检查masm文件夹中是否有edit.exe文件,如缺失可从网上下载)

图2-16

第五步 在此处编辑汇编语言代码,下方给出了示例代码。完成后点击File→Save/Save As,键入文件名,一定要带“.asm”这一后缀,否则后续工作无法进行。建议就保存在当前路径即masm文件夹中,省去后面操作中输入路径的烦恼,如图2-17所示。

图2-17

示例代码(注释仅帮助理解,无需输入):

第六步 点击File→Exit,退出编辑。输入masm,直接进入编译器界面,如图2-18所示。

图2-18

第七步 可以从图2-18中看到[.ASM]的标记,这个标记代表的是需要在这里输入要编译的源程序文件名,这里有一点特别的是,由于默认的文件扩展名为.asm,所以在编译.asm的汇编源程序时可以不用指定源程序所在文件的扩展名,直接输入demo即可。

第八步 输入demo后,回车,如图2-19所示。

图2-19

(1)Object filename:此时可以看到编译器提示需要输入要编译出的目标文件的名称,由于在一开始已经指定了demo.asm,所以编译器自动指定了目标文件的名称为demo.obj,如果在这里不做修改的话,则编译器会以默认目标文件名称js.obj进行输出,所以直接按Enter键即可。

(2)Source filename:提示需要输入列表文件的名称,其实是完全可以不要让编译器生成这个LST文件的,所以也不需要进行输入,直接按Enter键即可。

(3)Cross-reference:提示需要输入交叉引用文件的名称,这里也完全可以不要让编译器生成这个CRF文件,所以也不需要进行输入,直接按Enter键即可。

至此,汇编源程序编译成功。编译得到的结果就是在D:\masm下生成了一个demo.obj文件。读者可自行查看。

第九步 对目标文件进行连接:键入link.exe,执行连接,如图2-20所示。

Object Modules:此时提示需要输入被连接的目标文件的名称,这里也就是demo.obj,由于在同一目录下,所以不需要指定路径,直接给出.obj的名称即可,按Enter键。

Run File:这里提示需要输入要生成的可执行文件的名称,此时如果想要将可执行文件输入到指定目录下,则需要指定目录,否则只需要指定名称即可,并且可以看到名称已有默认值:demo.exe,在这里选择默认值,直接按Enter键即可。

List File:提示需要输入映像文件的名称,在这里,不需要生成这个文件,所以直接按Enter键。

Libraries:提示需要输入库文件的名称,由于这个程序中没有使用任何的子程序,也就是根本没有调用什么库文件,所以这里也可以直接按Enter键处理。

LINK:提示没有堆栈区,不必理会。

至此,整个目标文件的连接工作结束,得到的结果是一个EXE文件。

图2-20

第十步 键入demo.exe,回车执行。从图2-20可知,屏幕显示Hello World,程序执行成功。

第十一步 键入debug.exe,进入调试模式。具体操作如下,读者可自行实践,如图2-21 所示。

图2-21 反汇编示例

-u:反汇编

-r:显示寄存器内容

-g:执行到断点处,后面+行号,例如-G9

-d:查看数据

-q:退出返回操作系统

注意: 32位系统机无需DOSBOX,可直接从edit步骤开始,之后的步骤相同。 PqyxtVGt6W19XCt6ezWd/vPXQJpMzTaDGYfqBhwE4qc2MlyuxygPXbdcQ2lDVHJl

点击中间区域
呼出菜单
上一章
目录
下一章
×