PAL4.exe+139EF0 - 8B 44 24 04 - mov eax,[esp+04]
PAL4.exe+139EF4 - 83 F8 0A - cmp eax,0A { 10 }
PAL4.exe+139EF7 - 7D 0B - jnl PAL4.exe+139F04
PAL4.exe+139EF9 - 85 C0 - test eax,eax
PAL4.exe+139EFB - 7C 07 - jl PAL4.exe+139F04
PAL4.exe+139EFD - 8B 84 81 CC000000 - mov eax,[ecx+eax*4+000000CC]
PAL4.exe+139F04 - C2 0400 - ret 0004 { 4 }
贴出来的目的就是想记录一下,我以前看汇编代码不是很流利,最近看了一点儿之后,感觉有了感觉了。
观察一下上面代码。
只调用了一个栈中的变量,可以认为这个函数只有一个参数。
先从栈中取得这个参数,然后和10比较。如果大于等于10则返回,小于10则判断这个参数是否小于0,小于则返回。
int func(int index)
{
if(index<10)
{
if(index<0)
{return 4;}
else
{
return obj.item;
}
}
return 4
}
大概是这么个流程。