内联汇编实现printf的调用

请大家看下这段代码,平衡堆栈处会报runtime error,有哪位高人告诉我哪里有问题,编译环境是vs 2010我的机器是64位win7

    #include <stdio.h>

char format[] = "%s %s\n";
char hello[] = "Hello";
char world[] = "world";
int main()
{
   __asm
   {
      push offset world
      push offset hello
      push offset format
      call printf
      pop ebx
      pop ebx
      pop ebx
   }
}