我正在尝试学习windows的汇编,并且看到有两个汇编程序:
masm:https://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64
masm32:http://masm32.com/index.htm
这些是等价的吗?我应该选择哪一个来学习windows的汇编?
发布于 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 / .endif、invoke等,这些都是其他汇编器中没有的。这是不是一个优点,这是一个品味问题,我个人更喜欢NASM风格的语法,因为它更规则,我发现宏预处理器使用起来更方便,但这是品味问题。
as则是另一回事。它使用完全不同的语法和指令名,与英特尔手册中给出的完全不同。这是大多数Unix变体(以及来自该环境的编译器,例如,GCC)上的默认设置,但在该环境之外基本上不会使用。当前版本的GNU也支持Intel语法,这使得大多数语法差异消失,但as通常主要是作为编译器的后端汇编程序,而不是一个完全成熟的宏汇编程序,所以与as或NASM/YASM相比,它的特性集仍然非常有限。
发布于 2010-11-02 16:21:35
看起来,MASM32是一个带有编辑器的完整软件开发工具包。您可以下载的here只是汇编程序本身,以便与Visual C++ 2005Express Edition一起使用(请阅读“系统要求”一节)。因此,如果你想从零开始,下载MASM32开发工具包,据我猜测,它更适合初学者。只需阅读此处的this页面,即可获得更多关于MASM的信息。
发布于 2011-06-29 04:15:13
正如joni所说,MASM32是一个完整的软件开发工具包。它包含一个编辑器、一些帮助文件,以及用MASM语言编写代码所需的所有内容。另外,值得注意的是,MASM32确实包含了MASM8版本;您不会遗漏任何东西。我个人推荐将MASM32作为一个包,它使开始使用MASM变得更加容易,但是您可以从头开始,只使用原始的MASM汇编程序,并从那里弄清楚它。
https://stackoverflow.com/questions/4075870
复制相似问题