8

64ビットWindowsアセンブリをプログラムしたい(できればNASMを使用して)。私はかなり見ましたが、グーグルで、64ビットのWindowsコンパイラが見つからないようです。一部のサイトではml64について言及していますが、VC++には含まれなくなったようです。32ビットアセンブリを試しましたが、64ビットマシンでクラッシュするだけです。64ビットWindowsマシンで32ビットアセンブリアプリケーションを作成、コンパイル、実行することは可能ですか?それとも、64ビット用に作成してコンパイルする必要がありますか?

ありがとう。

4

2 に答える 2

6

Yasm(*)は、最新のマルチプラットフォームNASMで書き直されたアセンブラーであり、x86とAMD64/x86-64の両方の命令セットをアセンブルできます。

ただし...おそらく意味するのは、アセンブルされたオブジェクトコード/ファイルをリンクして実行可能ファイルを作成するためのリンカが必要なことです。少なくとも完全に無料のMinGW(Minimal GNU for Windows)プロジェクトパッケージには、オブジェクトファイル(少なくともELFおよびPEオブジェクト形式)から32ビットと64ビットの両方のWindows実行可能ファイルをアセンブルできるリンカー(ldと呼ばれる)が付属しています。

アセンブラとリンカに正しいコマンドラインパラメータを指定すれば、64ビット環境で32ビットプロジェクトを確実にクロスコンパイル/ビルドできます。その逆も可能です。より正確な詳細については、選択したツールのドキュメントを参照してください。

*)http://yasm.tortall.net/

于 2012-05-23T02:40:28.833 に答える
3

64ビットWindowsで32ビットアセンブリを記述、アセンブル、および実行することができます。Windows7x64マシンのmasm32でいくつかのユーティリティを作成しました。64ビットコードをアセンブルしたいのであれば、FASMは64ビットオブジェクトコードをサポートしていると思います。

于 2012-05-22T19:48:36.230 に答える