2楼说的没错
[url=http://www.930v.com/]
[/url]

http://www.ah930.cn
| 全能ASP/PHP/ASP.NET主机,支持月付 | 专业 MSSQL 数据库空间,支持月付 | 专业 MySQL 数据库空间,支持月付 | 学习型 ASP/PHP/ASP.NET 主机 30元/年 |
| 高端软件开发 = 年薪十万不是梦 |
清水河鱼 在 2008-8-30 12:15 的发言:
自己都晕了,今天用tc2.0也是了一下程序,结果是11,10 ;而vc6.0 是10,10.。。。。。。
.text:00401010 main proc near ; CODE XREF: j_mainj
.text:00401010
.text:00401010 var_4C = dword ptr -4Ch
.text:00401010 var_C = dword ptr -0Ch
.text:00401010 var_8 = dword ptr -8
.text:00401010 var_4 = dword ptr -4
.text:00401010
.text:00401010 push ebp ; 保护EBP
.text:00401011 mov ebp, esp ; 把堆栈指针复制到EBP
.text:00401013 sub esp, 4Ch ;
.text:00401016 push ebx ; 保护EBX,ESI,EDI
.text:00401017 push esi
.text:00401018 push edi
.text:00401019 lea edi, [ebp+var_4C]
.text:0040101C mov ecx, 13h
.text:00401021 mov eax, 0CCCCCCCCh
.text:00401026 rep stosd
.text:00401028 mov [ebp+var_4], 0Bh ; 在栈上设置第一个临时变量x=11,地址是[sp-4]
.text:0040102F mov [ebp+var_8], 0Ah ; 在栈上设置第二个临时变量y=10,地址是[sp-8]
.text:00401036 mov eax, [ebp+var_4] ; 下面三句:执行x=x+1;
.text:00401039 add eax, 1
.text:0040103C mov [ebp+var_4], eax
.text:0040103F mov ecx, [ebp+var_8] ; 在栈上设置第三个临时变量temp,并执行temp=y; 地址是[sp-12]
.text:00401042 mov [ebp+var_C], ecx
.text:00401045 mov edx, [ebp+var_C] ; 以下两句:push temp; 此时首个进入栈中的参数=10
.text:00401048 push edx
.text:00401049 mov eax, [ebp+var_8] ; 以下两句:push y; 此时第二个栈中的参数=10
.text:0040104C push eax
.text:0040104D push offset ??_C@_05BBIB@?$CFd?0?$CFd?$AA@ ; 入栈第三个参数是"%d,%d"字符串的地址
.text:00401052 mov ecx, [ebp+var_8] ; 以下三句:执行y=y+1; 执行后y=11;
.text:00401055 add ecx, 1
.text:00401058 mov [ebp+var_8], ecx
.text:0040105B call printf ; 调用printf函数,相当于printf("%d,%d",10,10);
.text:00401060 add esp, 0Ch
.text:00401063 xor eax, eax
.text:00401065 pop edi ; 恢复EDI,ESI,EBX
.text:00401066 pop esi
.text:00401067 pop ebx
.text:00401068 add esp, 4Ch ; 复原 栈指针
.text:0040106B cmp ebp, esp
.text:0040106D call __chkesp
.text:00401072 mov esp, ebp
.text:00401074 pop ebp
.text:00401075 retn ; Main函数结束
.text:00401075 main endp