求问add和sub在效率上的区别

jinjiajie 2006-05-17 07:08:21
同标题
...全文
409 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
MrPotter 2006-05-22
  • 打赏
  • 举报
回复
一样的,乘法也可能一样,楼上所说的是有道理,但CPU可能早就会自动交换乘数再算了,所以不用在乎这点微小的差别,好象586以后的流水线CPU对所有指令都是一个时钟周期
lj860603 2006-05-22
  • 打赏
  • 举报
回复
MARK
  • 打赏
  • 举报
回复
CPU不会自动交换乘数再算,那样至少要多消耗两个时钟周期。
一个时钟周期只是简单指令(有的等效时钟周期还小于1呢),复杂指令还是需要多个时钟周期。
象BSF、BSR至少需要6~7个时钟周期,RCL、RCR要8个时钟周期以上,IMUL、IDIV都需要10个以上时钟周期,FSIN、FCOS更慢。
ccdjk 2006-05-21
  • 打赏
  • 举报
回复
学习学习
gxj707 2006-05-21
  • 打赏
  • 举报
回复
学习学习
justin108 2006-05-20
  • 打赏
  • 举报
回复
楼上所言既是
  • 打赏
  • 举报
回复
在x86上,加减运算与运算数的值无关,速度是一样的。
但是乘除不一样,乘数越小(注意不是被乘数),指令执行时间越短,比如10000 x 1就比1 x 10000执行快。

jinjiajie 2006-05-17
  • 打赏
  • 举报
回复
00411A30 cmp dword ptr [i],0F4240h
00411A37 jge main+3Bh (411A3Bh)


00411A30 cmp dword ptr [i],0
00411A34 jle main+38h (411A38h) 的效率是否相同?

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧