不要把MASM32开发环境和MASM汇编器版本搞混了!
MASM32是一个为那些对学习或者编写32位微软汇编(MASM)感兴趣的程序员提供的工作环境,它最流行的版本是8.0版,而我所知道最新版本是9.0版。
但是请大家一定要注意,这里的8.0版和9.0版不是指MASM编译器(即ML)的版本,而是MASM32开发环境的版本。
经常看到网上有网友发的贴把这两个概念都搞混了。
那么MASM(ML)编译器的版本到底有哪些呢?教学上常用的版本是 5.0版的,之前还有个 4.0版的记得“全国计算机等级三级考试”就是用的 4.0版。
5.0版之后有个 5.1版本,在这之后,从 6.0版开始MASM就改名ML了,因为它把编译和连接组合在一起了。
而且 6.0版还对汇编语言进行了大幅改造,使之支持高级语言的很多特性。
6.0版之后常看到的就是6.11、6.13、6.14MASM32(V8.0和V9.0)就是包含有ML6.14版,而不是ML8.0版。
6.14之后就是6.15但不常见,我手头上有6.15的ML,有兴趣的朋友可以向我索取或点此处进入下载。
但Microsoft从 6.15版开始好象就不再单独发布MASM的开发工具包了。
以后的ML还有7.0、7.1版,最新的是ML8.0版。
但它们都只包含在Visual 和Visual Studio 2005里面。
而且如果你安装了Visual Studio 2005的64位开发环境,你将得到一个MASM for x64 (ml64.exe)哈哈,各位这可是支持Intel 和AMD的64位CPU的汇编语言编译器!有志于64位底层开发的赶快去试用看看吧。
MASM 4.00这是最先广泛使用的一个 MASM 版本,适用于 DOS 下的汇编编程。
它很精巧,但使用起来不是很智能化,需要用户自己一板一眼地写出所有的东西。
很多教科书上讲的 8086 汇编语法都是针对这个版本的,对程序员来说。
它
只比用 Debug 方便一点点
MASM 5.00MASM 5.00 比 4.00 在速度上快了很多,并将段定义的伪指令简化为类
似 .code 与 .data 之类的定义方式,同时增加了对 80386 处理器指令的
支持,对 4.00 版本的兼容性很好
MASM 5.10对程序员来说,这个版本最大的进步是增加了对 @@ 标号的支持。
这样,程序员可以不再为标号的起名花掉很多时间。
另外, MASM 5.10 增加了对 OS/2
1.x 的支持
MASM 5.10B1989 年推出,比上一个版本更稳定、更快,它是传统的 DOS 汇编编译器中最完善的版本
MASM 6.001992 年发布,有了很多的改进。
编译器可以使用扩展内存,这样可以编译更大的文件,可执行文件名相应从 Masm.exe 改为 Ml.exe 。
从这个版本开
始可以在命令行上用 *.asm 同时编译多个源文件,源程序中数据结构的使
用和命令行参数的语法也更像 C 的风格。
最大的改进之一是开始支
持 .if/.endif 这样的高级语法,这样,使用复杂的条件分支时和用高级语
言书写一样简单,可以做到几千行的代码中不定义一个标号;另外增加了
invoke 伪指令来简化带参数的子程序调用。
这两个改进使汇编代码的风格
越来越像 C ,可读性和可维护性提高了很多
MASM 6.00A未发售的版本
MASM 6.00B最后一个支持 OS/2 的 MASM 版本,修正了上一版本中的一些错误
MASM 6.10修正了一些错误,同时增加了 /Sc 选项,可以在产生的 list 文件中列出
每条指令使用的时钟周期数
MASM 6.10A1992 年发布,修正了一些内存管理方面的问题
MASM 6.111993 年 11 月发布,支持 Windows NT ,可以编写 Win32 程序,同时支持Pentium 指令,但不支持 MMX 指令集
MASM 6.11C1994 年发布,增加了对 Windows 95 VxD 的支持
MASM 6.121997 年 8 月发布,增加 .686 , .686P , .MMX 声明和对相应指令的支持
MASM 6.131997 年 12 月发布,增加了 .K3D 声明,开始支持 AMD 处理器的 3D 指令MASM 6.14这是一个很完善的版本,它在 .XMM 中增加了对 Pentium III 的 SIMD 指令集的支持,相应增加了 OWORD ( 16 字节)的变量类型
MASM 6.152000 年 4 月发布。