|
发表于 2012-3-28 16:56:54
|
显示全部楼层
本帖最后由 莫名其妙 于 2012-3-28 17:05 编辑
这++ -- 真 让人头痛
汇编大妈查看如下
5: a = 3; 这里存放a的值
00401028 mov dword ptr [ebp-4],3 这是赋值 a=3
6: b = (++a)+(++a);
这里暂时存放前一个a的值
0040102F mov eax,dword ptr [ebp-4]
00401032 add eax,1 这里将 a自增
00401035 mov dword ptr [ebp-4],eax 自增后的结果给a a=4
这里暂时存放后一个a的值
00401038 mov ecx,dword ptr [ebp-4]
0040103B add ecx,1 这里后面的a 自增
0040103E mov dword ptr [ebp-4],ecx 自增结果 给后面的a = 5
这里统一前后两个a的值 ( a的值取最后一次得出的a的值)
00401041 mov edx,dword ptr [ebp-4] 这里将 a 统一等于5 参与运算
00401044 add edx,dword ptr [ebp-4] a+a
|
|