VC++6.0 Windows XP
アセンブラで書いたプログラムをコールするには、どうすればよろしいのでしょうか?
現在、アセンブラを勉強中でして、
アセンブラで書いたプログラムをVC++からよびたいのですが、
どのような方法があるのでしょうか?
assemblyコードをassembleして、objectファイルはできているのでしょうか?
だったら、用意した関数用のheaderファイルでも用意して、呼び出しを書いて、
一緒にlinkするだけ。
assebleしていないなら、まずはそこからだが、VCってassemblerも別に
入ってるのかは知らない。
cl(=compiler)のオプションで、assembleできるのかも知らない。
# inline assemblerじゃ駄目なのか??
インラインアセンブラじゃ駄目なのですか?
void test_asm( int a, int b )
_asm {
アセンリブリ言語
.....
.....
}
}
インラインアセンブラ上で
上記の関数を呼び出すとき、
b,aの順で、引数を入れて
call test_asm
例:
_asm{
mov eax, a
mov ebx, b
mov [esp+4],eax
mov [esp+0],ebx
call test_asm
}
・・・・・・・・・
こんな感じだった記憶が・・・・
うる覚えですが・・・・
間違っているかも
駄目かな?
アセンブリ側で呼び出し規約をVCに合わせる。
>アセンブリ側で呼び出し規約をVCに合わせる。
アセンブリ側というか、両者の規約を合わせる必要がある。
VC側も複数の呼び出し規約を選択できるので、その範囲でアセンブリを組む。