我一直在寻找骨髓间充质干细胞Ubuntu 的编译器。我已将所有开发工具移至 Ubuntu。现在我正在上 MASM 课,非常需要一个 MASM 编译器。我见过一些YouTube 上的视频。他们大多使用 DOS 模拟器,并在其中安装 MASM 编译器。我不太喜欢看这样的东西。
以下是我所寻找的内容:
理想情况下,它会有一些日志来排除我的程序故障。
图形用户界面是一个优点,但我不需要它。
我希望编译器不是 Windows 的模拟(它不需要使用 WineHQ)。
我目前正在使用带有 MASM 包的 Sublime Text,所以我不需要 IDE,但是如果您拥有的解决方案是 IDE,那就没问题了,就像 Visual Studio 的轻量级替代品一样。
在这种情况下,什么是好的 MASM 编译器?
答案1
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 位架构上像往常一样使用参数名称。