MASM介绍——摘自维基百科

 MASM

维基百科,自由的百科全书

跳转到: 导航, 搜索

MASMMicrosoft Macro Assembler 的缩写,它是 微软x86 微处理器家族,所写的一套组译器。它最初是用来发展在 MS-DOS 上面执行的软件,同时,它也该系统最流行的组译器。

它支援的很灵巧,既广泛又多样性,结构化程式的惯用语法,包含高阶架构式的循环、程序呼叫,以及轮替 (alternation)(因此,MASM 算是高阶组译器的一个范本).

目录

[隐藏]
<script type="text/javascript"></script>

[编辑] 竞争

在 1990 年代初期,不管如何,有一些可供选择的组译器,像是 Borland TASM、共享版的 A86,以及(在 90 年代末期)NASM,都开始取得 MASM 的一些市场份量。但是在 1990 年代终,有两种因素,使得 MASM 保住大部分的市场份量:

一是,微软停止把 MASM 作为商业产品一样的出售,并开始当成免费散布的 DDK驱动器发展套件)之一部分;其次,MASM32 开发包Iczelion's Win32 教材的出现,让视窗应用程式的设计,更方便使用 MASM.

后来在 2000 年,MASM 6.15 的发行,一样是 Visual C++ Processor Pack 的一部份,费用全免。结果,在 Visual C++ 6.0 后来的所有版本,所包含的 MASM 之版本,都相等该 Visual C++ 的版本。后来在 Visual C++ 2005,64 位元版的 MASM 出现了(档名为 ml64.exe)。加上有庞大数量已安装 MASM 的用户群基础,这些因素,使得MASM仍能继续生存而不被淘汰。

[编辑] 支援 MASM 的专案

有许多正在进行的软件开发专案,都有支援到 MASM,其中包括 IDE(如 WinAsm StudioRadASM)、除错器(像是 OllyDbg),以及 反组译器(如 IDAPro, Interactive Disassembler

这个 MASM32 的专案(http://www.movsd.com/)为了 MASM 使用者的方便,它把许多非常令人感动的程式师所写的程式库 (library)、程式范例 (sample code) 宝库,以及令人感动的说明文件,全都集合在一起。也有很多网上论坛,有在支援 MASM(包括 http://www.masm32.com/board/index.php).

这些也都是沿习着着名的产品,如 Visual BasicVisual C++EasyCodeIDE 一样,为 MASM 提供 视觉化 (visual) 的能力。虽然这个产品上了年纪,但它仍然是最受各方支援的组译器

[编辑] MASM 的版本

商业产品时期的 MASM 主要版本:

4.x 1980 年代末期最流行的版本,很多组合语言入门书都以它为范本。 5.x 开始强化组译器简易指令(点指令),以简化程式架构。稍晚的组合语言入门书亦大量运用此一版本。 6.x 版本为了支援 Windows,有几个重大特色:

  • 支援 flat 与 386 以上 CPU保护模式。
  • 整合 PWB(Programmer's WorkBench) 开发环境。这软件在同时期的 Quick BASIC 也找得到。
  • 支援 DOS Extender,内建 DOS/16M。
  • 开始支援 OS/2WinAPI
  • 简易指令加入流程控制叙述,如 .IF、.While、.Exit......等。
  • 强化对外部函式库的支援命令,如 proto 与 invoke 等指令,其中最核心的是将 proc 指令包装成符合高阶语言风格(支援 C 与 Pascal 风格)的形式,且 invoke 指令重新包装 call 与 push/pop 指令,可以更直观、高阶地运用函式。这对呼叫高阶语言写成的函式、特别是繁复的 WinAPI 非常重要。
  • masm 与 link 整合为 ML。
  • NMake 的 makefile 描述结构也产生了巨大的变化。

虽然 MASM 不再是商业产品,但微软乃继续支援着它,因为在微软的厂内,还是存在着大量以组语为基础的程式码

以单独包装贩卖的 MASM,最后版本的是 6.11. 自从微软停止对 MASM 分开销售后,至今他们也更新了几次的 MASM 6.x 版。

6.15 版是放在 Visual C++ 6.0 Processor Pack 中。

7.0 版是放在 Visual C++ .NET 2002

7.1 版是放在 Visual C++ .NET 2003

8.0 版是放在 Visual C++ .NET 2005,它也可以组译 x64程式码

在这些新版 Visual C++ 的 bin 目录中,都可以看见 ml.exe,但在 Visual C++ .NET 2005 的同样目录中,可以看见 ml64.exe,它可以组译 x64程式码。它的说明文件,也都是这些新版本的 Visual C++ 之说明文件的一部份。

有一些新版本的 MASM,也会放在微软的 SDKDDK 中。

[编辑] 支援

虽然有传言说,微软不再支援发展组译器,事实上,微软是继续支援发展这个产品。大致来说,支援仅限于添加新的指令集,如出现较新的处理器,以及加强支援 64 位元;往后将不会见到此组译器被彻底的改头换面。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值