|
发表于 2012-1-27 14:47:05
|
显示全部楼层
本帖最后由 Soyoung 于 2012-1-29 14:53 编辑
不太清楚,不过是Windows流行以后而开发出来的,以前上学时用的Masm5.0好像不可以开发Windows程序,上百度看看了看也是这么说的。
Win32Asm是应用于Windows平台下专有的汇编,它是为了弥补C/C++的不足而研发的
使用Win32Asm虽然只能在windows下进行开发,但是它的开发效率无疑是非常高的,通过Invoke语句调用API,使编写的程序无论在思想上,或是视觉上都十分清晰。同时,它也保留了80x86汇编的强大功能,可以对底层进行操作。
常用的Win32Asm编译器有微软的MASM32,Borland公司的TASM,与传统的汇编相比,Win32Asm已不再是DOS下的开发工具,它可以完全的脱离DOS,使用32位Windows平台进行开发Win32Asm是除了C++,Delphi之外,又一个适合开发大型项目的工具。 4.x 1980 年代末期最流行的版本,很多组合语言入门书都以它为范本。 5.x 开始强化组译器简易指令(点指令),以简化程式架构。稍晚的组合语言入门书亦大量运用此一版本。 6.x 版本为了支援 Windows,有几个重大特色:
支援 flat 与 386 以上 CPU保护模式。
整合 PWB(Programmer's WorkBench) 开发环境。这软件在同时期的 Quick BASIC 也找得到。
支援 DOS Extender,内建 DOS/16M。
开始支援 OS/2 与 WinAPI。
简易指令加入流程控制叙述,如 .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,也会放在微软的 SDK 和 DDK 中。
|
|