The difference between masm32 and masm?

I am trying to examine the assembly for windows and see that there are 2 assemblers:

masm: https://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64

masm32: http://masm32.com/index.htm

are equivalent? Which should I choose to study the assembly for windows?

+4
source share
3 answers

This and MASM (apparently) are just different versions. I usually use the official (MS) link. Now MASM is also included in the Windows SDK - if you install it, it contains ML.exe in the bin .

If you just use it to learn assembler, the version of MASM used is not a big deal. Newer versions of MASM add support for 64 bits ( ML64.exe ) and newer instructions as they are added to the x86 instruction set, but more on that. The main differences between different collectors are different dialects. There are 3 main dialects of x86 assembly language: MASM syntax, NASM syntax and Unix style as syntax (also used Borland TASM, but today it is almost dead). MASM, NASM and YASM use the same command and register names, but have slightly different conventions ( dword ptr [blah] vs. dword [blah] , etc.) and completely different macro languages. MASM also has some higher-level constructs, such as .if / .endif , invoke , etc., which are not found in other assemblers. Regardless of whether this is an advantage or not a matter of taste, I personally prefer the NASM style syntax because it is more regular, and I think the macro preprocessor is more convenient to use, but it is a matter of taste.

as is another matter. It uses completely different syntaxes and command names, which differ from the data given in Intel manuals. This is the default value for most Unix variants (as well as for compilers that come from this environment, such as GCC), but is mostly not used outside of this environment. Current versions of GNU as also support Intel syntax, which makes most of the syntactic differences, but as a whole is primarily intended as an auxiliary assembler for compilers rather than a full-fledged macro assembler, so it still has a very limited set of functions compared to MASM or NASM / YASM.

+4
source

As it seems, MASM32 is a whole SDK with an editor, etc. What you can download here is just the assembler itself for use with Visual C ++ 2005 Express Edition (read in the System Requirements section). Therefore, if you want to start from scratch, download the MASM32 Sdk, which, it seems to me, is better for beginners. Just read this page here for more information on MASM.

+1
source

MASM32 is an entire SDK, as Joni said. It contains an editor, some help files, and basically everything you need for coding in the MASM language. In addition, it is worth noting that MASM32 does indeed contain version 8 of MASM; you have not missed anything. I personally recommend MASM32 as a package, it greatly simplifies the launch in MASM, but you can do it all from scratch and use only the original MASM assembler and understand it from there.

0
source

All Articles