6

これらすべてのビルドプロセスがMASM6.11で提供されるツールによって実行されているかのように、コードを効果的にコンパイル/リンク/ビルドなどしながら、VisualStudio2008を可能な限り使用したいと思います。MASMの正確なバージョンは、6.xの範囲内にある限り、重要ではありません。これは、私の大学が16ビットアセンブリを教えるために使用しているものです。

私はこのテーマについていくつかの調査を行い、いくつかの選択肢があるという結論に達しました。

  1. MASM 6.11がネイティブに行うのと同じフラグなどを使用して、MASM6.11実行可能ファイルを呼び出すようにVSを再構成します。
  2. VSによって呼び出される中間バッチファイルを作成してから、MASMのリンカなどの適切なコマンドを呼び出します。
  3. VSの組み込みビルドツール/ルール(アセンブラー、リンカーなど)を再構成して、MASM6.11で使用される環境と同じ環境を提供します。

オプション(2)は、VSの「外部ツール」インターフェイスで使用できるオプションではMASMのビルドツールを正しく呼び出すには不十分である可能性があることに気付いたときに作成されました。したがって、VSの厳密な引数の受け渡し方法を解釈するバッチファイルが役立つ場合があります。これを機能させる方法についての私の学習では、コマンドプロンプトからML.exe、LINK.exeなどを手動で呼び出す必要がありました。

以下は私の質問に答えるのに役立つかもしれないいくつかのリンクです。私はそれらをすべて読んだことを覚えておいてください、そしてどれも実際の解決策ではありません。私がMASM6.11を指定しても、おそらくもっと一般的な答えを提供することを妨げないことを願っています。

オプション(2)で使用されたのと同様の方法ですが、スレッドのユーザーには連絡できません:http:
//www.codeguru.com/forum/archive/index.php/t-284051.html
(また、私は中間バッチファイルの必要性)

私の質問に対する古い説明:
http ://www.cs.fiu.edu/~downeyt/cop3402/masmaul.html

おそらく私が決定的な解決策に到達した最も近いものですが、MASM以外のツールのスイートを指し、バッチファイルも使用します:
http ://www.kipirvine.com/asm/gettingStarted/index.htm#16 -少し

コードの各ステップで使用されるツールの用語がオフになっている場合はお詫びします->exeプロセスですが、コードの記述が完了してから実行可能ファイルを生成するまでのステップ全体を再現しようとしているため、実行しませんそれはとても重要だと思います。

4

6 に答える 6

4

(32 ビット システムの remove (x86))にある MASM ルール ファイルがあります。

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCProjectDefaults\masm.rules

そのファイルをプロジェクト ディレクトリにコピーし、プロジェクトのカスタム ビルド規則に追加します。次に、[ルール ファイルの変更...] で、MASM ビルド ルールと [ビルド ルールの変更...] を選択します。

プロパティを追加します。

  • ユーザー プロパティ タイプ:文字列
  • デフォルト値: *.inc
  • 説明: MASM ファイルの依存関係を追加します。
  • 表示名:追加の依存関係
  • 読み取り専用: False
  • 名前:追加の依存関係
  • プロパティ ページ名:一般
  • スイッチ: [値]

追加の依存関係の値を[AdditionalDependencies]に設定します。ビルドは への変更を自動的に検出するよう*.incになり、個々の asm ファイルのプロパティを編集して他のファイルを指定できます。

于 2010-03-08T17:16:51.080 に答える
2

ファイル拡張子に応じてカスタム ビルド ルールを定義することをお勧めします。(少なくとも Professional Edition の Visual Studio 2008 では、配布可能な .rules ファイルを生成できます)。そこでは、asm ファイルのカスタム ビルド ツールを定義できます。このアプローチを使用すると、リンカー ステップをそのままにしておくことができるはずです。

以前は、MASM32リンク テキストを IDE として使用して、学生がアセンブリを学習できるようにしていました。アセンブルとリンクのバッチファイルを確認できます。

于 2008-10-15T18:53:01.720 に答える
2

Makefile プロジェクトを作成できます。Visual Studio の [ファイル]、[新規]、[プロジェクト] で、[Visual C++] / [Makefile プロジェクト] を選択します。

これにより、任意のコマンドを実行してプロジェクトをビルドできます。C/C++ である必要はありません。従来の NMake makefile である必要さえありません。私はこれを使用して、バッチ ファイルと NAnt スクリプトを使用してドライバーをコンパイルしました。

MASM 6.x ツールチェーンを実行するのはかなり簡単です。

于 2008-10-12T09:15:14.913 に答える
1

バッチ ファイルの代わりに、ファイルで定義されたカスタム ビルド ステップを使用してみませんか?

于 2008-09-21T23:58:32.447 に答える
0

Visual Studio を使用する場合は、空のインライン アセンブリ ブロックを持つ関数を呼び出すコンソール アプリのエントリ ポイントを含む C/C++ のスケルトン プロジェクトを提供し、その中に結果を入力させることはできませんか?

于 2008-10-10T16:20:41.640 に答える
0

アーバインのガイドを使ってみませんか? Irvine のライブラリは優れており、必要に応じて無視して Windows プロシージャを直接操作できます。このようなガイドを探していましたが、アーバインのガイドが最適なソリューションでした。

于 2008-11-15T03:54:10.677 に答える