| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1442 人关注过本帖
标题:[求助] 哪个循环的速度更快?为什么呢?
只看楼主 加入收藏
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
以下是引用neverTheSame在2007-11-12 13:38:28的发言:

我做过如下测试:
int main(void)
{
int i;
i=0x1111;
i++;
i=0x1111;
i--;
}
反汇编为:
13F4:01FE BE1111 MOV SI,1111
13F4:0201 46 INC SI
13F4:0202 BE1111 MOV SI,1111
13F4:0205 4E DEC SI

请问你用的是什么反汇编工具啊?我最近正在学习汇编,想看看c写的程序都被汇编成啥样了


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-12 13:49
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
我比较了一下

for(i=0;i<10;i++)
for(i=0;i!=10;i++)
for(i=0;i<10;++i)

这三种写法的速度都差不多

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-12 13:51
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
for(i=0;i<10;i++)
for(i=10;i;i--)

关键在这...

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-11-12 13:56
nianshi
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-7
收藏
得分:0 
回复:(I喜欢c)[em13]不会吧!我曾经在书上看到说i...
难道不是一样快吗 这与C语言算法有关吗?

行至水穷处 坐看去起时
C语言QQ群1:51871776  群2:26313099  群3:47145282
2007-11-12 14:16
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
其他编译器速度差不多,vc的编译器有点奇怪

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-12 14:18
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
加法指令本来就比相应的减法指令要简单

倚天照海花无数,流水高山心自知。
2007-11-12 16:00
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
减法指令应该先做补码再做加法指令.
所以要比加的多做一步.

倚天照海花无数,流水高山心自知。
2007-11-12 16:01
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
以下是引用永夜的极光在2007-11-12 13:49:56的发言:

请问你用的是什么反汇编工具啊?我最近正在学习汇编,想看看c写的程序都被汇编成啥样了

把生成的可执行文件用debug调入,再用u命令显示即可.
不用什么反汇编工具.


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-11-12 16:21
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
我用vc写了一段程序
#include <stdio.h>
int main()
{
int i;
i=1;
i++;
return 0;
}
编译运行后,生成的1.exe复制到了c盘根目录

然后用debug c:\1.exe和U命令,看到的是
-u
0D02:0000 0E PUSH CS
0D02:0001 1F POP DS
0D02:0002 BA0E00 MOV DX,000E
0D02:0005 B409 MOV AH,09
0D02:0007 CD21 INT 21
0D02:0009 B8014C MOV AX,4C01
0D02:000C CD21 INT 21
0D02:000E 54 PUSH SP
0D02:000F 68 DB 68
0D02:0010 69 DB 69
0D02:0011 7320 JNB 0033
0D02:0013 7072 JO 0087
0D02:0015 6F DB 6F
0D02:0016 67 DB 67
0D02:0017 7261 JB 007A
0D02:0019 6D DB 6D
0D02:001A 206361 AND [BP+DI+61],AH
0D02:001D 6E DB 6E
0D02:001E 6E DB 6E
0D02:001F 6F DB 6F

跟我的程序没啥关系啊,麻烦教教我怎么办

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-12 16:29
叶柄
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-10-17
收藏
得分:0 

我 只听说 ++i 比 i++ 快
当然--i也比i--快

2007-11-12 17:22
快速回复:[求助] 哪个循环的速度更快?为什么呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023690 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved