我一直在尋找一個MASMUbuntu 的編譯器。我已將所有開發工具轉移到 Ubuntu。現在我正在上MASM課程,我非常需要一個MASM編譯器。我見過一些YouTube 上的視頻。他們大多使用 DOS 模擬器,並在其中安裝 MASM 編譯器。我並不是真的喜歡看這樣的東西。
這是我正在尋找的:
理想情況下,它會有一些日誌來對我的程式進行故障排除。
圖形使用者介面是一個優點,但我不需要它。
我希望編譯器不是 Windows 的模擬(它不需要使用 WineHQ)。
我目前正在使用具有 MASM 套件的 Sublime Text,因此我不需要 IDE,但是如果您擁有的解決方案是 IDE,那就可以了,就像 Visual Studio 的輕量級替代品一樣。
在這種情況下,什麼是好的 MASM 編譯器?
答案1
谷歌頁面列出了許多替代方案,也說明了為什麼 jwasm 比這些更好。 Nelow 直接從 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 語言編寫的。
- JWasm 的原始程式碼根據 Sybase Open Watcom 公共授權發布,允許免費商業和非商業使用。
與其他彙編器相比
MASM
- JWasm 是免費的,沒有人為的許可證限制,可用於為任何作業系統建立二進位檔案。
- JWasm 是開源的,忘記煩人的 MASM bug ...
- 支援更多輸出格式(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 落後。
POASM
- 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 位元架構上像往常一樣使用參數名稱。