由汇编分析出c代码
int myfuction(int a,int b)
{
00411A20 PUSH EBP
00411A21 MOV EBP,ESP
00411A23 SUB ESP,0E8H
00411A29 PUSH EBX
00411A2A PUSH ESI
00411A2B PUSH EDI
00411A2C LEA EDI,[EBP-0E8H]
00411A32 MOV ECX,3AH
00411A37 MOV EAX,0CCCCCCCH
00411A3C REP STOS DWORD PTR [EDI]
00411A3E MOV EAX,DWORD PTR [a] ;
00411A41 ADD EAX,DWORD PTR [b] ;
00411A44 MOV DWORD PTR[d],EAX ;d=a+b
00411A47 MOV DWORD PTR[i],1 ;i=1
00411A4B MOV DWORD PTR[c],0 ;c=0
00411A55 CMP DWORD PTR[c],64H ;while(c<100)
00411A59 JGE myfunction+46h(411A66H) ;
00411A5B MOV EAX,DWORD PTR [c] ;
00411A5E ADD EAX,DWORD PTR [i] ;
00411A61 MOV DWORD PTR[c],EAX ;c=c+1
00411A64 JMP myfunction+35h(411A55H)
00411A66 MOV EAX,DWORD PTR[c] ;
00411A69 MOV DWORD PTR [EBP-0E8H],EAX ;switch(c)
00411A6F CMP DWORD PTR [EBP-0E8H],0 ;case 0:
00411A76 JE myfunction+63h(411A83H) ;d=1
00411A78 CMP DWORD PTR [EBP-0E8H],1 ;case 1:
00411A83 MOV DWORD PTR[d],1 ;d=1
00411A8A MOV EAX,DWORD PTR [c] ;
00411A8D MOV DWORD PTR [d],EAX ;
00411A90 JMP myfunction+79h(411A99H) ;break;
00411A92 MOV DWORD PTR[d],0 ;default:
;d=0
00411A99 MOV EAX,DWORD PTR[d] ;返回值d
00411A9C POP EDI
00411A9D POP ESI
00411A9E POP EBX
00411A9F MOV ESP,EBP
00411AA1 POP EBP
00411AA2 RET
}
浙公网安备 33010602011771号