编写一个两数交换函数swap,具体代码如下:
#include
void swap(int *p1,int *p2)
{inttemp;
temp= *p1;*p1 = *p2;*p2=temp;//printf("p1=%d,p2=%d,temp=%d\n",p1,p2,temp);
}
void main(){int a=0;int b=0;char *str1="a=%d,b=%d\n";
printf("++++++\n");
a=2;
b=3;
printf(str1,a,b);
swap(&a,&b);
printf(str1,a,b);
}
首先对main函数进行汇编转换:
#include
void swap(int *p1,int *p2)
{inttemp;
temp= *p1;*p1 = *p2;*p2=temp;//printf("p1=%d,p2=%d,temp=%d\n",p1,p2,temp);
}
main(){int a=0;int b=0;char *str1="a=%d,b=%d\n";
printf("++++++\n");
_asm{//a=2
mov a,2
//b=3
mov b,3
//printf(str1,a,b);
mov ecx,b
push ecx
mov eax,a
push eax
mov edx,str1