Vc.net嵌入汇编处理指针的方法

如欲得到指针指向的数据,需要二次寻址才可,如下程序为交换两个指针指向数据的代码

void Exchange(int *p1,int *p2)
{
#if 1
 _asm
 {
  mov eax,p1;
  mov eax,[eax];

  mov ebx,p2;
  mov ebx,[ebx];

  mov ecx,p1;
  mov [ecx],ebx;

  mov ecx,p2;
  mov [ecx],eax;
 }
#else
 int t=*p1;
 *p1=*p2;
 *p2=t;
#endif
}

void Test5()
{
 int a=1,b=2;
 Exchange(&a,&b);
 printf("%d %d\n",a,b);
}

Powered by Jekyll and Theme by solid

本站总访问量