2009-06-02 7 views
1

MSVC++でアセンブリコードを作成、編集、リンク、コンパイル(単語をコンパイルしていますか?)などが可能ですか?MSVC++でアセンブリコードをコンパイルできますか?

また、不可能な場合、プレーンテキストから.exeを作成するにはどうすればいいですか?つまり、アセンブリコードを使用するために必要な形式にテキストを変換してから、アセンブリコードを.exeに変換します。 (私はコンパイルと言うだろうが、私はそれが正しい単語ではないと思う)。

最後に、アセンブリコードの学習にはどのような場所が適していますか?小さな経験を持つ人が使うことができるように書かれています。

私はこれらの質問のいくつかはおそらく非常にばかだと知っていますが、私はアセンブリコードでの経験は全くありません。

+4

"assemble"はあなたが探している単語です。 – RBerteig

答えて

8

x86では、はい。 __asmキーワードを使用すると、標準のソースファイルにアセンブリをインライン展開し、通常のMSコンパイル/リンクツールを使用してすべてをまとめてコンパイルできます。

x64(またはx86)では、アセンブリのためにML and ML64コマンドラインコンパイラを使用する必要があります。

+1

これはx86でのみ動作し、x64への痛みの切り替えを引き起こします。 x64コンパイラは、インラインアセンブリをサポートしていません。 – Michael

+0

True:x64では、ml.exeを使用する必要があります。 –

+0

@マイケル:明確にするために私の答えを更新しました。 –

0

C++の 'asm'キーワードに関する情報を探します。それはコンパイラ固有のものかもしれませんが、私はVC++がそれをサポートすることを知っています。

1

要するに、はい。

Wikipediaによれば、MASMはVisual CのすべてのバージョンがVC6より遅く出荷されており、Windows Driver Developer Kitでも利用できます。 16ビットのリアルモードとプロテクトモード、32ビット、64ビットをサポートするバージョンはすべてサポートされています。

3

Visual Studioでは、cおよびC++のインラインアセンブリをコンパイルするためのキーワード__asmが提供されています。また、inline assemblyの使用に関する良い議論もあります。しかし、あなた自身がアセンブリをコンパイルすることについて話しているのであれば、Visual C++が正しいツールであるかどうかはわかりませんが、Visual StudioのMASMアセンブラを使っていることは確かです。

1

__asmキーワードを使用して、インラインアセンブリを記述できます。

pcasm-book(pdf)は、アセンブリコードプログラミングを開始するのに適したチュートリアルです。

+0

違いがあるのか​​どうか分かりませんが、pcasm-bookの最新版はhttp://drpaulcarter.com/pcasm/pcasm-book- pdf.zip。 2005年3月20日対2006年7月23日。 –

1

ありがとうございます。

C:\Program Files\Microsoft Visual Studio 9.0\vc\bin>ml 
Microsoft (R) Macro Assembler Version 9.00.30729.01 
Copyright (C) Microsoft Corporation. All rights reserved. 

usage: ML [ options ] filelist [ /link linkoptions] 
Run "ML /help" or "ML /?" for more info 

マクロアセンブラを使用します。 Visual Studioが.asmファイルで自動的に "正しいことをする"かどうかは分かりませんが、確かにそれを編集してml.exeでアセンブルすることはできます。

アセンブリ言語の学習を始めるには、リバースエンジニアリングについて学ぶのがよいでしょう。

関連する問題