ML version compatibility with the MASM32 Project

The version of ML.EXE supplied with the MASM32 Project started life as ML version 6.11d from the original WIN98DDK as the EULA allowed it to be used for application development. As they became available, later patches were applied to the version of ML.EXE with the latest being the 6.14 patch in the late 90s. It is still a very useful assembler that is very well understood but the last patch was introduced before SSE2 instructions were available and version 6.14 cannot generate SSE2 opcodes. For programmers who need to write SSE2 code, ML version 6.14 is out of data and if they wish to write SSE2 code using a Microsoft assembler, they will need to get a later version. Below is a list of later version that are current at the time of writing.

Version 6.15 was introduced in the Processor pack for the Visual C++ development environment version 6 as an update for VC 6. It is a highly reliable version that can safely do all of what version 6.14 can do but with the addition of SSE2 opcode generation.

Version 7.00 was released under the XPDDK and while it works well and has fixed a number of minor issues with the pre-processor, it has broken command line support for *.asm command lines and the only alternative is to use a response file to build multiple files like libraries.

Version 7.10 is available from both the commercial release of VC2003 and the MICROSOFT KERNEL-MODE DRIVER FRAMEWORK 1.0 and appears to be identical to version 7.00 complete with the defective command line support. It apparently has a later debugging format that works with the later versions of the VC product line.

Version 8.00 was introduced with the commercial release of VC2005 and appears to be a reasonably reliable version apart from sharing the same defect as the earlier 7.?? series of ML.EXE. It also appears not to support the old RECORD format that MASM has traditionally supported. It has been rumoured that Microsoft may make the later version 8.00 binaries available from their own web site for general use in developing software for the Windows environment but at the time of writing this page, there does not appear to be any of the later binaries available from Microsoft.

Licence Issues.
The version of ML.EXE that is supplied with the MASM32 Project is licenced under the WIN98DDK for a range of tasks including application development. The appropriate EULA is contained in the LICENCE directory of the MASM32 project and it is a condition of its use that the binary is used in accordance with this EULA.

Because of the diversity of sources for different versions of ML.EXE, any developer who needs to produce code with other versions of the Microsoft assembler will need to properly understand the EULA that the version is attached to before they use it. Commercial versions of the VC product range should be suitable for commercial development of code without restriction but versions supplied with various DDKs are subject to verious restrictions on how and where the resulting code can be used.

It is beyond the scope of the MASM32 project to deal with licencing issues that are controlled by an international software corporation and any enquiries related to licencing Microsoft software should be made directly to the Microsoft Corporation at either their sales or licencing divisions.

Support Issues.
Since its original version the MASM32 project has supported programmers who can find a use for it in various venues on the internet, the most recent being the masm forum. While the track record of support ranges back for over 8 years at the time of writing this page at no cost whatsoever to the Microsoft Corporation, as later versions of ML.EXE are released that progressively differ from the old version used in the MASM32 project, the capacity to support proprietry software that is not freely available progressively diminishes and while forum members do the best they can to help other members who use the later versions, it may be in the best interests for programmers or their employers to investigate and purchase one of the support options directly from Microsoft to obtain support for the use of ML.EXE in the VC environment that it is supplied in.