「ASM/hello」の編集履歴(バックアップ)一覧に戻る

ASM/hello - (2014/04/08 (火) 11:24:49) のソース

|開発環境|Microsoft Visual C++ 2010 Express (SP1)|
|実行環境|Microsoft Windows XP Home Edition (SP3)|
|プロジェクトの種類|Win32 プロジェクト|
|プロジェクト名|hello|
|アプリケーションの種類|Windows アプリケーション|
|追加のオプション|空のプロジェクト|

参考
[[Win32 MASM プログラミング入門>http://www7.plala.or.jp/keny01/asm/win32/index.html]]

*プロジェクトの新規作成
-メニューから「ファイル」→「新規作成」→「プロジェクト」を選択する
-「Win32 プロジェクト」または「Win32 コンソール アプリケーション」を選択する
-名前を入力する「hello」
-「ソリューションのディレクトリを作成」のチェックを外す
-「空のプロジェクト」をチェックする

*ビルドのカスタマイズ
-「ソリューション エクスプローラー」の「hello」を右クリックし、ポップアップメニューから「ビルドのカスタマイズ」を選択する
-「masm(.targets, .props)」をチェックする

*ソースファイルの追加
-「ソリューション エクスプローラー」の「ソース ファイル」を右クリックし、ポップアップメニューから「追加」→「新しい項目」を選択する
-「C++ ファイル (.cpp)」を選択する
-名前を入力する「hello.asm」

ビルドのカスタマイズの前にソースファイルを追加した場合
-「ソリューション エクスプローラー」の「hello.asm」を右クリックし、ポップアップメニューから「プロパティ」を選択する
-項目の種類に「Microsoft Macro Assembler」を選択する

*ソースの入力
hello.asm
#highlight(asm){{
; hello.asm
.586
.model flat, stdcall

NULL		EQU	0
MB_OK		EQU	0

MessageBoxA	proto :dword, :dword, :dword, :dword
ExitProcess	proto :dword

.data
CAPTION		DB 'ハロー', 0
TEXT		DB 'hello, world', 0

.code
WinMainCRTStartup	proc
	invoke MessageBoxA, NULL, offset TEXT, offset CAPTION, MB_OK
	invoke ExitProcess, 0
	ret
WinMainCRTStartup	endp
end
}}

*ビルド
-ソリューション構成に「Release」を選択する
-メニューから「デバッグ」→「ソリューションのビルド」を選択する(F7キーでも可)

 1>  LINK : /LTCG が指定されましたが、コードの生成は必要ありません。
 [[リンク]] コマンド ラインから /LTCG を削除し、リンカーの性能を改善してください。

**リンカーの設定
-「ソリューション エクスプローラー」の「hello」を右クリックし、ポップアップメニューから「プロパティ」を選択する
-「構成プロパティ」→「リンカー」→「最適化」を選択する
-構成に「Release」を選択する
-「リンク時のコード生成」を空にする
「構成プロパティ/全般/プログラム全体の最適化:プログラム全体の最適化なし」でも可

-「構成プロパティ」→「リンカー」→「デバッグ」を選択する
-構成に「Release」を選択する
-デバッグ情報の生成「いいえ」を選択する

-「構成プロパティ」→「リンカー」→「マニフェスト ファイル」を選択する
-構成に「Release」を選択する
-マニフェストの生成に「いいえ (/MANIFEST:NO)」を選択する