[PR]完全無料!おもしろ占い:暇つぶしに最適!ユニーク診断

- Visual C++のカスタムビルドでNetwide Assembler(NASM)を使用する方法 - 

yosirin-hello / yosi-s@galaxy.ocn.ne.jp

1. はじめに

 私は今まで, アセンブリ言語でのプログラミングは, Visual C++のインラインアセンブリで行ってきました. しかし, へるみさんと出会えたおかげで, NASMというすばらしいフリーのアセンブラを知ることができ, NASMを使い始めるようになりました.
 NASMのマニュアルを見ていると, Win32だけでなくLinuxやFreeBSDのオブジェクトファイルのフォーマットに対応していることがわかりました. 今後Linuxへの移植を考える時に, スムーズに移植できることは必要条件になってくるので , これは使ってみる価値があると思いました.
 今回は, Visual C++の環境の設定の仕方を中心に解説していきます.
2. 環境の設定

 1. http://ww1.tiki.ne.jp/~hino/nasmw098_sse2.zipからSSE2に対応したNASMをダウンロードします.
  注:このNASMは, オリジナルの NASM に うるりさんが SSE2 対応のために一部修正したものです
 2. ZIPファイルを解凍すると, 下の画面のファイルができあがります.



 3. Visual C++のツール>>オプション>>ディレクトリを選択します. そして, nasmw098_sse2.zipを解凍したディレクトリを下の画面のように登録します. その時に, 表示するディレクトリ(S)の所を実行可能ファイルにして, ディレクトリを登録する必要があります.



 4. プロジェクト(P)>>設定(S)を選択します. そしてカスタムビルドのコマンド(C)の所に次のように書いておきます.

   nasmw -dWIN32 -f win32 -o $(IntDir)\$(InputName).obj $(InputDir)/$(InputName).nas

   コマンドラインの説明は以下のとおりです.

-dWIN32 -dはC言語でいう#defineの機能に相当しています. だから, これでnasmw.exeに"WIN32を定義する"と通知することができます. このWIN32を定義することで, nasm.cfg(へるみさんに再配布の許可をもらいました)がVisual C++に対応します.
-f win32 オブジェクトファイルの種類をMicrosoft Win32 objに選択することを通知します.
-o $(IntDir)\$(InputName).obj -oは, 出力するオブジェクトファイルの名前を通知するコマンドです. -o $(IntDir)\$(InputName).objとすることで, 中間ディレクトリの入力ファイル名に拡張子.objが付いたオブジェクトファイルを生成します.

   そして, 出力(O)の所に

   $(OutDir)/$(InputName).obj

   と書いておきます. これで設定は完了です.



 ビルドをするとアウトプットウインドウに次のように表示されます.

--------------------構成: 1012 - Win32 Release--------------------
カスタム ビルド ステップを実行中 - .\mypi.nas
カスタム ビルド ステップを実行中 - .\test.nas
カスタム ビルド ステップを実行中 - .\clk.nas
コンパイル中... main.c
リンク中...

main.exe - エラー 0、警告 0

3. 参考にしたウェブサイト

NASM Manual
Using NASM with Windows and Visual C++
TL Lab Page
AlphaX86 Developments / VC+NASM HOWTO
4. 改訂履歴

改訂 履歴 日付
1.0 初公開 03/31/2002


Copyright © 2002 yosirin-hello All rights reserved.


[PR]DoCoMoご利用の方必見!:無料の運命鑑定≪スピリチュアルの館≫