作者cgcheng (..)
看板Programming
标题Re: [问题] 怎麽看高阶语言指令使用的 cycle time?
时间Sat Dec 4 21:37:24 2010
※ 引述《tropical72 (蓝影)》之铭言:
: (1) 怎麽看 C 语言编出来的组语?
: (2) 翻出来的 add, sub, mult, div 所用的 cycle time
: 我只知道是固定的,
: 是否有相关网址 or datasheet 可查这些 cycle time?
: 谢谢各位的不吝指教,感激不尽!
cycle time? 是指一个指令几个 cycle 吗?
基本上是这样的,比如一个 mov 2 个 cycle,程式反组译出来
有两行就是 4 个 cycle
ex:
mov eax,ebx
mov ebx,ecx
不过通常还会有 loop,所以算不太准,以前在纯 dos 的时代,可以用
这种方式大概算出 cpu 的频率
c 在 freebsd 环境的话,有什麽 runtime link,函数第一次呼叫的时候
会需要一些程序,比如载入 so module 并 mmap,把 function address 放进
一个 table 等等,第二次执行到同样的 function 时,就不需要再载入,会快
得比较多
然後程式第一次执行跟第二次执行也有可能因为 cache 而有影响所以应该是给
他算不太准
有一些组合语言基础其实也不错啦,要融会贯通一些东西也许会很有帮助
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.28.189
※ 编辑: cgcheng 来自: 59.115.28.189 (12/04 21:38)
※ 编辑: cgcheng 来自: 59.115.28.189 (12/04 21:39)
1F:推 tropical72:非常感谢您的说明,我再摸摸,谢谢!! 180.177.76.142 12/04 23:49