gpt4 book ai didi

c++ - 如何制作跨平台的c++内联汇编语言?

转载 作者:太空狗 更新时间:2023-10-29 20:01:28 25 4
gpt4 key购买 nike

我破解了以下代码:

unsigned long long get_cc_time () volatile {
uint64 ret;
__asm__ __volatile__("rdtsc" : "=A" (ret) : :);
return ret;
}

它适用于 g++ 但不适用于 Visual Studio。我怎样才能移植它?检测 VS/g++ 的正确宏是什么?

最佳答案

#if defined(_MSC_VER)
// visual c
#elif defined(__GCCE__)
// gcce
#else
// unknown
#endif

我的内联汇编技术很生疏,但它的工作原理是这样的:

__asm
{
// some assembler code
}

但是要只使用 rdtsc 你可以只使用内在函数:

unsigned __int64 counter;
counter = __rdtsc();

http://msdn.microsoft.com/en-us/library/twchhe95.aspx

关于c++ - 如何制作跨平台的c++内联汇编语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/771867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com