ASM:MASM、NASM、FASM?

Posted

技术标签:

【中文标题】ASM:MASM、NASM、FASM?【英文标题】:ASM: MASM, NASM, FASM? 【发布时间】:2012-04-28 03:01:06 【问题描述】:

我已经完成了 ARM 汇编编程,我想学习 Intel Assembler。我不断听到提到的所有这些不同的 F/M/N/ASM,但我不确定它们与我希望实现的目标有何关系?

有人可以帮我确定学习如何在英特尔架构上进行低级编程需要什么吗?我不太明白“不同的汇编程序”是如何关联的,对于 x86、IA64、AMD64/x86-64 等更是如此?

如果有任何帮助,我最喜欢 Eclipse 和 Visual Studio 08/10 IDE。

【问题讨论】:

在某种程度上取决于您首选的操作系统 - Windows? Linux? Mac OS X ?其他? Mac OS X 会使用什么? 【参考方案1】:

MASM (Microsoft Assembler) 是流行的 Windows 汇编程序。 MASM 用于 16 位和 32 位应用程序 (x86)。 ML64 是 64 位源 (AMD64/x86-64)

NASM (Netwide Assembler) 是流行的 Linux 汇编器,但也可以在 Windows 上使用。 NASM 支持 16 位、32 位和 64 位程序。

FASM(平面汇编程序)可用于 Windows 和 Linux。 FASM 也同时支持 32 位和 64 位程序。

所以我猜你更愿意根据你的要求选择MASM

【讨论】:

NASM 也可用于 Windows。 谢谢帕万。语法有什么不同吗? @user997112 是的。阅读 MASM 和 NASM 的区别here NASM 还支持 16 位汇编,这就是我如此喜欢它的原因。 :) 很抱歉六年后插话,但 FASM 确实为 16 位 Intel x86 组装。

以上是关于ASM:MASM、NASM、FASM?的主要内容,如果未能解决你的问题,请参考以下文章

masm与nasm的搭建使用

一个好的 NASM/FASM 教程? [关闭]

Ubuntu 16.04安装NASM汇编IDE-SASM

来自 NASM 的 %line 指令等效于 MASM

需要从MASM转换到NASM

汇编学习笔记-NASM环境搭建(nasm with vs2017)