by Eric Palmer
When targeting x64 platforms in Visual Studio .NET* 2005, programmers are no longer able to use inline assembly code as they did for 32-bit code. This forces the programmer to either rely on C/C++ code using intrinsics, or to tediously create a 64-bit MASM (.asm) version of the function. Unfortunately, the VS .Net 2005 implementation of the intrinsic for CPUID (__cpuid) recognizes only input arguments in the register eax, and not the more recently defined inputs in ecx, which are required for queries regarding cache parameters and certain multi-core characteristics. Thus, a 64-bit .asm listing is required for full use of the CPUID instruction.
The following code samples demonstrate how to use the CPUID and RDTSC instructions with VS .Net 2005 for 64-bit (x64) platforms. The CPUID instruction is commonly used to obtain detailed information about the system’s CPU(s), and RDTSC is used to read the CPU’s internal time-stamp counter for timing and performance-measurement purposes. The RDTSC intrinsic (__rdtsc) does work as expected and can be used to replace inline assembly.
![]()
If you're interested in this topic, these articles may be helpful:
![]() | User's Guide: Intel Persistant Storage Manager (Intel PSM): Software for Microsoft Windows CE Intel® PSM Software Overview Intel® Persistent Storage Mana... |
![]() | Creating C# wrappers for Intel Integrated Performance Primitives using Microsoft .NET interoperability mechanisms from Intel Corp. One of the beauties of .NET is that an object wri... |
![]() | Microsoft Plans to Support Intel Virtualization Technology in 2006 “Over the next couple of years, virtualization will transform th... |
![]() | How to use all of CPUID for x64 platforms under Microsoft Visual Studio .NET 2005 by Eric Palmer. Intel Corp. When targeting x64 platforms in Visual ... |
![]() | Microsoft Windows Vista and Intel vPro Technology: Transform your Workplace Get Ready to Transform Your Workplace Inspiring New Levels of Agili... |
![]()
Related Jobs:

