小ネタ 2007-015

AMD-64bitCPU用のアセンブラを試してみる


1.準備

 ・AMD-64bitCPUを搭載したPC ・ ・ ・ Athlon64を搭載しているhp社の激安サーバー機を使用した。
 ・64bit版のWindows ・ ・ ・ Windows Vista Home Premium Editionの64bit版を使用した。
 ・Visual Studio 2005 Standard Edition ・ ・ ・ VS2005 Express Editionは不可。Professional Editionは試してないがおそらくOK。



2. 作成したソースコード

 作成したソースコード一式 ・・・ [ amd64test.zip (download) ]

 zipファイルの中身は以下の通り。
 ・amd64_asm_test.asmというファイルがアセンブリ言語で書かれた部分のソースコード。単純な足し算を行っている。
 ・test.cというファイルが、アセンブラ部分の関数を呼び出している。
 ・build.batというバッチファイルは、ビルド用。



3. ビルド方法

 統合環境を使わずに、バッチ処理でビルドするためのバッチファイルbuild.batを使う。(ちなみに統合環境を使う場合のやり方はこのサイトを参考にさせて頂いた。)

 バッチファイルの前半は、開発環境の環境変数を設定している。
 後半は、アセンブラとコンパイラとリンケージエディタを動かしている。

 実際にバッチファイルを起動してビルドした時の画面表示はこのようになる。(64bit版OS上での場合)
 
 問題が無くビルドできたら、test.exeという実行ファイルが作成される。



4. 動作確認

 作成したtest.exeを実行すると、下記のように表示される。64bit版のOSでないと動作しない。
 


 これで、AMD64の64bitアセンブラで書いたソースがちゃんと実行されているのが確認できた。



--
それで何かの役に立つかというと、特に何もない。
アセンブラでガリガリ書いて何か作ろうというわけではないし、そういう時代でもないしなあ。




(後日加筆 2008.4.13)
 Visual Studio 2008 Standard Editionも試してみた。普通にちゃんとビルドできた。
 変更したのは、ビルド用のバッチファイルの環境変数の設定部分のみ。

 ソースコード一式 ・・・ [ amd64test_vs2008.zip (download) ]



(後日加筆 2009.1.25)
 Windows7 beta 64bit版で動作するか試してみた。ちゃんと動作するようだ。