1,025
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <unistd.h>
#include <time.h>
//inline
uint64_t rdtsc()
{
unsigned long a, d;
asm volatile ("cpuid; rdtsc" : "=a" (a), "=d" (d) : : "ebx", "ecx");
return a | ((uint64_t)d << 32);
}
volatile int delay(uint64_t d_time){
int t,y,x=0;
t= d_time;
int a= 10;
int b=7;
for(;t>0;t--){
asm volatile (
"mov %1 , %%eax; mov %%eax, %0;" :
"=r" (b):
"r" (a):
"%eax");
}
return b;
}
int main(int ac, char **av)
{
int i;
uint64_t end_aes_time,end_proc_time;
uint64_t time4;
for(i =0;i<10;i++)
{
end_aes_time = rdtsc();
delay(50);
end_proc_time = rdtsc();
time4 = end_proc_time-end_aes_time;
printf("%4ld ", time4); // delay time
printf("\n");
}
return 0;
}