首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >masm32和masm的区别是什么?

masm32和masm的区别是什么?
EN

Stack Overflow用户
提问于 2010-11-02 16:08:26
回答 3查看 6.9K关注 0票数 6

我正在尝试学习windows的汇编,并且看到有两个汇编程序:

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

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

这些是等价的吗?我应该选择哪一个来学习windows的汇编?

EN

回答 3

Stack Overflow用户

发布于 2010-11-02 16:34:07

这两个MASM (显然),只是不同的版本。我通常会使用官方(MS)链接。MASM现在也是Windows SDK的一部分-如果您安装它,它会在bin目录中包含ML.exe

如果您只是用它来学习汇编语言,那么使用的MASM版本并没有太大的区别。较新版本的MASM在向x86指令集中添加64位(ML64.exe)和较新指令时增加了对它们的支持,但仅此而已。不同的汇编器之间的主要区别是不同的方言。x86汇编语言有三种主要的方言:MASM语法、NASM语法和Unix风格的as语法(过去也有Borland TASM,但现在已经死亡)。NASM和YASM都使用相同的指令和寄存器名称,但有一些稍微不同的约定(dword ptr [blah]dword [blah]等)。和完全不同的宏语言。MASM还有一些高级结构,如.if / .endifinvoke等,这些都是其他汇编器中没有的。这是不是一个优点,这是一个品味问题,我个人更喜欢NASM风格的语法,因为它更规则,我发现宏预处理器使用起来更方便,但这是品味问题。

as则是另一回事。它使用完全不同的语法和指令名,与英特尔手册中给出的完全不同。这是大多数Unix变体(以及来自该环境的编译器,例如,GCC)上的默认设置,但在该环境之外基本上不会使用。当前版本的GNU也支持Intel语法,这使得大多数语法差异消失,但as通常主要是作为编译器的后端汇编程序,而不是一个完全成熟的宏汇编程序,所以与as或NASM/YASM相比,它的特性集仍然非常有限。

票数 4
EN

Stack Overflow用户

发布于 2010-11-02 16:21:35

看起来,MASM32是一个带有编辑器的完整软件开发工具包。您可以下载的here只是汇编程序本身,以便与Visual C++ 2005Express Edition一起使用(请阅读“系统要求”一节)。因此,如果你想从零开始,下载MASM32开发工具包,据我猜测,它更适合初学者。只需阅读此处的this页面,即可获得更多关于MASM的信息。

票数 1
EN

Stack Overflow用户

发布于 2011-06-29 04:15:13

正如joni所说,MASM32是一个完整的软件开发工具包。它包含一个编辑器、一些帮助文件,以及用MASM语言编写代码所需的所有内容。另外,值得注意的是,MASM32确实包含了MASM8版本;您不会遗漏任何东西。我个人推荐将MASM32作为一个包,它使开始使用MASM变得更加容易,但是您可以从头开始,只使用原始的MASM汇编程序,并从那里弄清楚它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4075870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档