|
发表于 2020-2-11 15:32:27
|
显示全部楼层
本楼为最佳答案
- 0040DF9F C7 45 F8 05 00 00 00 mov dword ptr [ebp-8],5 //ebp-8=5
- 17: q=(++j)+(++j)+(++j);
- 0040DFCD 8B 4D F8 mov ecx,dword ptr [ebp-8] //ecx=5
- 0040DFD0 83 C1 01 add ecx,1 //ecx=5+1=6
- 0040DFD3 89 4D F8 mov dword ptr [ebp-8],ecx //ebp-8=6
- 0040DFD6 8B 55 F8 mov edx,dword ptr [ebp-8] //edx=6
- 0040DFD9 83 C2 01 add edx,1 //edx=6+1=7
- 0040DFDC 89 55 F8 mov dword ptr [ebp-8],edx //ebp-8=7
- 0040DFDF 8B 45 F8 mov eax,dword ptr [ebp-8] //eax=7
- 0040DFE2 03 45 F8 add eax,dword ptr [ebp-8] //eax=7+7=14
- 0040DFE5 8B 4D F8 mov ecx,dword ptr [ebp-8] //ecx=7
- 0040DFE8 83 C1 01 add ecx,1 //ecx=7+1=8
- 0040DFEB 89 4D F8 mov dword ptr [ebp-8],ecx //ebp-8=8
- 0040DFEE 03 45 F8 add eax,dword ptr [ebp-8] //eax=14+8=22
- 0040DFF1 89 45 F0 mov dword ptr [ebp-10h],eax //ebp-10h=22
复制代码
你看下汇编就知道情况了,问题在与前两个相加的时候,是用7+7,其实这个计算式最后的结果就是q=j+j+j
只是j的值不一样 |
|