首页 > 学院 > 开发设计 > 正文

RDTSC

2019-11-08 02:33:16
字体:
来源:转载
供稿:网友

前言

开始以为GetTickCount是用RDTSC实现的,跟进去看, 不是. 封装了函数, 使用RDTSC来取时间戳计数器值.

记录

// wrapper for RDTSC//#include "stdafx.h"#include <windows.h>#include <stdlib.h>#include <crtdbg.h>// RDTSC__int64 getTickByRDTSC();int main(int argc, char* argv[]){ __int64 llTick = 0; llTick = getTickByRDTSC(); PRintf("llTick = 0x%I64X/r/n", llTick); llTick = getTickByRDTSC(); printf("llTick = 0x%I64X/r/n", llTick); llTick = getTickByRDTSC(); printf("llTick = 0x%I64X/r/n", llTick); system("pause"); return 0;}/** run resultllTick = 0x179CA3233A94llTick = 0x179CA34470B4llTick = 0x179CA34F3D66请按任意键继续. . .*/__int64 getTickByRDTSC(){ __int64 llRc = 0; DWord dwHigh = 0; DWORD dwLow = 0; __asm { RDTSC mov dwHigh, edx mov dwLow, eax } llRc = dwHigh; llRc <<= 32; llRc |= dwLow; return llRc;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表