14年5个月前IP:未同步
436538
49楼
请教一下,对于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自己优化的办法?
评论
文号 / 436538

万流景仰
名片发私信
学术分 8
总主题 412 帖总回复 4593 楼拥有证书:专家 老干部 学者 机友 笔友
注册于 2009/03/15 21:53:00最后登录 2026/01/31 04:21:35
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:0

个人简介

CV

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的