インラインアセンブラで 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;
}
}