QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1259|回复: 2

帮忙解释一下这段程序

[复制链接]
发表于 2003-10-23 15:36:43 | 显示全部楼层 |阅读模式
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,3)
extern unsigned long cpu_khz;

// Setup function to read cpu cycles out of pentium class processor.
#define rdtsc2(low,high) \
     __asm__ __volatile__("rdtsc" : "=a" (low), "=d" (high))

#else
………………
#endif
 楼主| 发表于 2003-10-23 15:38:09 | 显示全部楼层
调用是这样的
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,3)
  double cycles_d, khz_d;
  unsigned long eax, edx;

  rdtsc2(eax,edx);
  cycles_d = (edx*4294967296.0)+eax;

  khz_d = (double) cpu_khz;
  return cycles_d/(khz_d*1.0e3);
回复

使用道具 举报

发表于 2003-10-23 21:07:04 | 显示全部楼层
search rdtsc()  in google.

there is a good introduction on rdtsc on intel site.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 06:20 , Processed in 0.035584 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表