我编了一个RDTSC指令的测试程序,不过得出的结果想和大家探讨一下。
该程序首先申请一个整型变量 i 。
接下来的关键代码是:
rdtsc;
mov ebx,eax;
rdtsc;
sub eax,ebx;
mov i,eax;
就是计算一条mov指令的精确执行时间,得出结果总是80。居然我把这个程序放到网吧的电脑上,结果还是80。我总感觉有些不太对劲。按道理讲,一条寄存器到寄存器的mov指令也就只要一个周期吧,这个80到底是怎么来的,我就是不太清楚,会不会是取指令时读存储器时耗费掉的啊?
我想这个程序肯定哪个地方错了,因为我在两个RDTSC指令之间增加了一条指令,居然结果还是80。不知道到底是哪里的问题。大家能不能帮帮忙啊?
我把附件传上来了。