Home > programming > GetTickCount的实现

GetTickCount的实现

昨天突然想看看GetTickCount的实现,于是借助调试器看了一下GetTickCount的汇编代码。那是一个相当的简单

_GetTickCount@0:
7C80934A mov edx,7FFE0000h
7C80934F mov eax,dword ptr [edx]
7C809351 mul eax,dword ptr [edx+4]
7C809354 shrd eax,edx,18h

简单到如此地步让我觉得相当诡异,只有几个赋值,乘,位移之类的操作怎么就把当前的时钟滴答数搞到手了呢?看了这篇文章以后大致知道内核中估计会定期更新0x7FFE0000这个地址上的内容,然后GetTickCount只需要获取这个地址上的值,再经过简单的计算就可以得出答案了。

Categories: programming Tags: , ,
  1. No comments yet.
  1. No trackbacks yet.