CPUID 在 x64 平台与 Microsoft Visual Studio* .NET 2005 上的应用

celineshi 2006-06-26 11:44:32
针对 Visual Studio .NET* 2005中的x64平台,程序员不能像对32位代码那样使用内联汇编代码(inline assembly)。这迫使他们或求助使用内联函数(intrinsics)的 C/C++ 代码,或不嫌麻烦地创建函数的 64 位 MASM(.asm)版本。不幸的是,VS .Net 2005 在实施 CPUID(__cpuid)的内联函数时,只能识别 eax 寄存器中的输入自变量,而不能识别 ecx 中最近定义的输入,这些输入用于有关高速缓存参数和某些多核特性的查询。这样,CPUID 指令的充分使用就需要一份 64 位 .asm 清单。

以下代码示例显示了如何与面向 64 位(x64)平台的 VS .Net 2005 配合使用 PUID 和 RDTSC 指令。CPUID 指令被广泛用于获取系统 CPU 的详细信息,而 RDTSC 则被用来读取 CPU 用于计时和性能测量目的的内部时间戳计数器。RDTSC 内联数据(__rdtsc)的确可实现预期的功用,从而替代内联汇编代码。

http://www.intel.com/cd/ids/developer/apac/zho/recent/260174.htm
...全文
400 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
celineshi 2007-03-14
  • 打赏
  • 举报
回复
ding~~

568

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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