| 发表于:2007-05-03 15:17:57 楼主 |
假设下边的一个子程序: sub3 proc _var1,_var2 mov eax,_var1 mov ebx,_var2 ret sub3 endp 然后反汇编之后的程序代码如下: :00401018 55 push ebp :00401019 8bec mov ebp, esp :0040101b 8b4508 mov eax, dword ptr [ebp+08] :0040101e 8b5d0c mov ebx, dword ptr [ebp+0c] :00401021 c9 leave :00401022 c20800 ret 0008 现在的问题是:我通过这段时间的阅读,这里子程序压栈的顺利是var2、var1、ebp寄存器,假定在压入var2之前esp的地址为0,则var2、var1、esp的存放地址我感觉应当分别为-4、-8、-12。 因此据此我感觉move eax,var1反汇编之后的代码应当是mov eax,dword ptr [ebp+04],不知道在这里为什么是[ebp+08],有知道的朋友欢迎后面跟贴呀,本人不胜感激!! |
|
|
|
|