请教一下,对于LZ的代码,VC++编译后相当低效,从时间和空间上都不怎么样:
000D13BE C7 45 F8 03 00 00 00 mov dword ptr [a],3
000D13C5 8B 45 F8 mov eax,dword ptr [a]
000D13C8 83 C0 01 add eax,1
000D13CB 89 45 F8 mov dword ptr [a],eax
000D13CE 8B 4D F8 mov ecx,dword ptr [a]
000D13D1 03 4D F8 add ecx,dword ptr [a]
000D13D4 03 4D F8 add ecx,dword ptr [a]
000D13D7 89 4D EC mov dword ptr [b],ecx
000D13DA 8B 55 F8 mov edx,dword ptr [a]
000D13DD 83 C2 01 add edx,1
000D13E0 89 55 F8 mov dword ptr [a],edx
000D13E3 8B 45 F8 mov eax,dword ptr [a]
000D13E6 83 C0 01 add eax,1
000D13E9 89 45 F8 mov dword ptr [a],eax
就不说啥智能化,VC++对于递增的处理就有问题,先将变量传入寄存器再递增最后再传回……蛋疼
感觉稍微高效点应该是这样
mov a,3
inc a
mov eax,a
add eax,a
add eax,a
mov b,eax
inc a
inc a
请教有没有让VC自己优化的办法?