インラインアセンブラで printf を呼び出す(その2)
ローカル変数のアドレスを動的に解決して printf を呼び出す方法。
lea (Load Effective Address) 命令で実効アドレスを読み込めば良いらしい。掛け算の最適化命令だと思ってたけど、基本的な使い方はこっちなのかな。
void main()
{
char hello[] = "Hello\r\n";__asm
{
lea eax, hello;
push eax;
call dword ptr [printf];
add esp, 4;
}
}