大佬教程收集整理的这篇文章主要介绍了如何将此装配时间戳功能转换为C?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
// Returns the Read Time Stamp Counter of the cpu // The instruction returns in registers EDX:EAX the count of ticks from processor reset. // Added in Pentium. Opcode: 0F 31. int64_t CDiffieHellman::GetRTSC( void ) { int tmp1 = 0; int tmp2 = 0; #if Defined(WIN32) __asm { RDTSc; // Clock cycles since cpu started mov tmp1,eax; mov tmp2,edx; } #else asm( "RDTSc;\n\t" "movl %%eax,%0;\n\t" "movl %%edx,%1;" :"=r"(tmp1),"=r"(tmp2) : : ); #endif return ((int64_t)tmp1 * (int64_t)tmp2); }
最有趣的是,这被用于生成随机数. asm块在x64下都没有编译,所以使用ifdef也无济于事.我只需要找到C/C++替换以避免重写整个程序.
以上是大佬教程为你收集整理的如何将此装配时间戳功能转换为C?全部内容,希望文章能够帮你解决如何将此装配时间戳功能转换为C?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。