如何内嵌汇编调用MessageBox ???假设MessageBox 地址为087888A
 WDORD Addr = 0x087888A;
char sz1[10] = "Hello";
char sz2[10] = "Msg";
HWND hWnd = NULL;
_asm

     push 0x0
     push sz2
     push sz1
     push hWnd
     call Addr 
 }
压入字符串是这么压么?还是char * sz1 ="hello"?

解决方案 »

  1.   

    字符串用char * sz1 ="hello" 即可
      

  2.   

    char sz1[10] = "Hello";这个sz1  是在栈上分配的  
    应该用char * sz1 ="hello";
      

  3.   

    你如果非要用sz[10]的话  建议你看看VS是怎么编译成汇编代码的   然后你自己照着做
      

  4.   

    压栈:
    1.指针:char *sz1 ="hello"PUSH sz12.数组:char sz1[10] = "Hello";a.局部:LEA EAX, sz1
           PUSH EAX
    b.全局:MOV EAX, OFFSET sz1
           PUSH EAX