目录

C++内联汇编常见问题.md

定位

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  __asm
  {
  	mov edx,edx
    mov edx,edx
    mov edx,edx
    
    ...
  }
}

不可直接传值

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
{
  __asm
  {
  	
    mov eax,[0x01] //错误,不可直接传值
      
    //方法1  
    mov eax,0x01	//需要通过寄存器来传值  
    mov eax,[eax]
    
    //方法2  
    mov eax,dword ptr ds:[0x01]
      
  }
}

传局部变量的地址

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
	int b =1;
	int* a = &b;
  
  DWORD c = (DWORD)a;
  
	__asm
	{
		pushad
		
		push c
		...
		
		popad
	}
}