- #include "stdio.h"
- int Function1(int x,int y)
- {
- return x+y;
- }
- int Function2(int x,int y,int z)
- { int r;
- int k=Function1(x,y);
- r= Function1(k,z);
- return r;
- }
- int G_A=0x100;
- void Function3(int x,int y)
- {
- if (x>y)
- {
- G_A=x;
- }
- else
- {
- G_A=y;
- }
-
- }
- int z;
- void _declspec(naked) Function4(int x,int y)
- {
- // int z;
- _asm
- {
- push ebp
- mov ebp,esp
- sub esp,0x40
- push esi
- push edi
- push ecx
- mov eax,0xcccccccc
- mov ecx,0x10
- lea edi,[ebp-0x40]
- rep stosd
- mov eax,[ebp+0x8]
- add eax,[ebp+0xc]
- // mov z,eax
- pop ecx
- pop edi
- pop esi
- mov esp,ebp
- pop ebp
- ret
- }
- // return z;
- }
- int _declspec(naked) Function5(int x,int y)
- {
- // int z;
- _asm
- {
- push ebp
- mov ebp,esp
- sub esp,0x40
- push esi
- push edi
- push ecx
- mov eax,0xcccccccc
- mov ecx,0x10
- lea edi,[ebp-0x40]
- rep stosd
- mov eax,[ebp+0x8]
- //add eax,[ebp+0xc]
- mov ecx,[ebp+0xc]
- cmp eax,ecx
- jle s
- mov G_A,eax
- jmp end
- s: mov G_A,ecx
-
- end: pop ecx
- pop edi
- pop esi
- mov esp,ebp
- pop ebp
- ret
- }
- // return z;
- }
- void main()
- {
- //int z=Function1(2,3);
- // int z=Function2(1,2,3);
- // Function3(2,1);
- //int z=Function4(1,2);
- //*printf*/printf("z=%d",z);
-
- Function5(0x10,0x20);
- printf("G_A=0x%x",G_A);
- getchar();
- }
复制代码 |