MASMコンパイラのソフトウェア推奨

MASMコンパイラのソフトウェア推奨

私は探していたマズムUbuntu用のコンパイラです。開発ツールはすべてUbuntuに移行しました。現在MASMのクラスを受講しており、MASMコンパイラがどうしても必要です。YouTubeの動画ほとんどの場合、DOS エミュレータが使用され、そこに MASM コンパイラがインストールされます。私はこのようなものを見るのがあまり好きではありません。

私が探しているのは次のものです:

  • 理想的には、プログラムのトラブルシューティングを行うためのログがいくつかあると便利です。

  • グラフィカル ユーザー インターフェイスはプラスですが、必要ありません。

  • コンパイラは Windows のエミュレーションではない方がよいでしょう (WineHQ を使用する必要はありません)。

現在、私は Sublime Text を MASM パッケージとともに使用しているため、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 Public License に基づいてリリースされており、商用および非商用を問わず無料で使用できます。

他のアセンブラと比較して

マズム

  • JWasm は無料で、人工的なライセンス制限がなく、あらゆる OS 用のバイナリを作成するために使用できます。
  • JWasm はオープンソースなので、煩わしい MASM のバグは忘れてください...
  • より多くの出力形式がサポートされます (Bin、ELF)。
  • オプションで非常に小さなオブジェクトモジュールを作成することもできます
  • レジスタベースの呼び出し規約など、Open Watcomのサポートが強化されました。
  • JWasm は Masm よりも高速です。

TASM

  • JWasm は利用可能です。TASM は合法的に利用できません。また、TASM のクローンのような LZASM は、IDEAL モードのみを認識します。
  • JWasm は STRUCT と UNION を完全にサポートしています。TASM にはこの領域で重大な制限とバグがあります。
  • JWasm は事実上すべての MASM v6 機能 (PROTO、INVOKE、hll ディレクティブなど) をサポートしていますが、そのほとんどは TASM では理解できません。
  • JWasm は SSE4 までの命令をサポートしていますが、TASM は遅れています。

ポアズム

  • JWasmはオープンソースです
  • JWasmはさらにOMF、ELF、バイナリ形式での出力もサポートしています。
  • JWasm は 16 ビットおよびセグメント化されたメモリ モデルをサポートします。POASM は FLAT のみを認識します。
  • JWasm は MASM のマクロ実装と互換性があります。POASM は互換性がありません。
  • POASM にはリスト ファイルを作成する機能がありません。

ワス

  • 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 ビット アーキテクチャーでは通常のようにパラメーター名を使用できないことに注意してください。

関連情報