MASM 编译器的软件推荐

MASM 编译器的软件推荐

我一直在寻找骨髓间充质干细胞Ubuntu 的编译器。我已将所有开发工具移至 Ubuntu。现在我正在上 MASM 课,非常需要一个 MASM 编译器。我见过一些YouTube 上的视频。他们大多使用 DOS 模拟器,并在其中安装 MASM 编译器。我不太喜欢看这样的东西。

以下是我所寻找的内容:

  • 理想情况下,它会有一些日志来排除我的程序故障。

  • 图形用户界面是一个优点,但我不需要它。

  • 我希望编译器不是 Windows 的模拟(它不需要使用 WineHQ)。

我目前正在使用带有 MASM 包的 Sublime Text,所以我不需要 IDE,但是如果您拥有的解决方案是 IDE,那就没问题了,就像 Visual Studio 的轻量级替代品一样。

在这种情况下,什么是好的 MASM 编译器?

答案1

我建议使用 jwasm(源码以及谷歌代码

google 页面列出了许多替代方案,并展示了为什么 jwasm 比这些更好。下面是来自 google 代码页面的直接复制,这样您就可以获得好的建议并获得替代程序。您需要尝试它们以决定哪种适合您。JWasm 适用于 Linux;所有其他可能不适用。

杰瓦斯

特征

  • 自由的。
  • 原生支持输出格式 Intel OMF、MS Coff(32 位和 64 位)、Elf(32 位和 64 位)、Bin 和 DOS MZ。
  • 预编译的 JWasm 二进制文件可用于 DOS、Windows 和 Linux。对于 OS/2 和 FreeBSD,提供 makefile。
  • 支持高达 SSE4.2 的指令。
  • JWasm 是用 C 编写的。源代码是可移植的,并已成功通过 Open Watcom、MS VC、GCC 等测试。
  • JWasm 的源代码根据 Sybase Open Watcom 公共许可证发布,允许免费商业和非商业使用。

与其他组装机相比

骨髓间充质干细胞

  • JWasm 是免费的,没有人为的许可限制,可用于为任何操作系统创建二进制文件。
  • JWasm 是开源的,忘记烦人的 MASM 错误吧……
  • 支持更多输出格式(Bin、ELF)。
  • 可以选择创建非常小的对象模块
  • 更好地支持 Open Watcom,例如基于寄存器的调用约定
  • JWasm 比 Masm 更快。

塔斯马尼亚导弹

  • JWasm 可用。TASM 不合法。LZASM 是 TASM 的克隆版本,仅支持 IDEAL 模式。
  • JWasm 完全支持 STRUCT 和 UNION。TASM 在这方面存在严重的限制和缺陷。
  • JWasm 几乎支持所有 MASM v6 功能(PROTO、INVOKE、hll 指令等),其中大多数 TASM 无法理解。
  • JWasm 支持高达 SSE4 的指令,TASM 落后。

点对点ASM

  • JWasm 是开源的
  • JWasm 还支持 OMF、ELF 和二进制格式的输出
  • JWasm 支持 16 位和分段内存模型。POASM 仅理解 FLAT。
  • JWasm 与 MASM 的宏实现兼容。POASM 则不兼容。
  • POASM 缺乏创建列表文件的能力。

WASM

  • JWasm 的宏功能比 Wasm 好得多。
  • JWasm 完全支持 Masm v6 语法。在 Wasm 中,Masm v6 中的大部分新增功能均已缺失。
  • 除了 OMF,JWasm 还支持 COFF、ELF 和二进制输出格式。JWasm 支持 64 位。

答案2

我认为有必要指出,jwasm 缺乏对基于 POSIX 的调用约定(类似 System V 的系统)的支持,因此,如果您愿意使用带有参数的 proto/procs 等功能,请注意这些参数将由 C/C++ 编译器通过寄存器传递,但 jwasm 不会使用正确的寄存器而是使用堆栈作为参数,因此您将无法在 64 位架构上像往常一样使用参数名称。

相关内容