博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IA32时钟周期的一些内容
阅读量:4073 次
发布时间:2019-05-25

本文共 497 字,大约阅读时间需要 1 分钟。

 

今天工作中看到了一个IA32时钟周期的内容,在有不错的介绍,不过英文看上去总是不大给力,自己试着翻了一下:

 

RDTSC指令将当前的处理器时间戳加载到EDX:EAX两寄存器。时间戳的长度是64bit的,存储在MSR(特别模块寄存器)中。其中,高32bit的内容加载到EDX寄存器,低32bit的内容加载到EAX寄存器。时间戳计数器的内容随着处理器时钟周期的增长而增长,并且在处理器重启的时候被重启置0。

当在保护模式下或者virtual8086模式下的时候,在CR4寄存器中有一个时间戳的开关标记(TSD),这个标记对RDTSC指令的使用范围做了一定的限制。当TSD标记被没有被指定,RDTSC指令能够在任何特权级下运行,如果这个标记被指定的话,这个指令只能在ring0下运行。(实模式下,RDTSC指令不存在这个限制)。

  

另外在自己写的程序中试了一下,把代码也抄上来,和上边blog里的用法差不多。

 

unsigned int a,b;	__asm	{		push eax		push edx		RDTSC		mov a,eax		mov b,ebx		pop edx		pop eax	};  

转载地址:http://klyni.baihongyu.com/

你可能感兴趣的文章
React Native(七):Android双击Back键退出应用
查看>>
Android自定义apk名称、版本号自增
查看>>
【剑指offer】q50:树中结点的最近祖先
查看>>
二叉树的非递归遍历
查看>>
【leetcode】Reorder List (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Candy(python)
查看>>
【leetcode】Sum Root to leaf Numbers
查看>>
【leetcode】Pascal's Triangle II (python)
查看>>
如何成为编程高手
查看>>
本科生的编程水平到底有多高
查看>>
Solr及Spring-Data-Solr入门学习
查看>>
python_time模块
查看>>
python_configparser(解析ini)
查看>>
selenium学习资料
查看>>
从mysql中 导出/导入表及数据
查看>>
HQL语句大全(转)
查看>>
几个常用的Javascript字符串处理函数 spilt(),join(),substring()和indexof()
查看>>
javascript传参字符串 与引号的嵌套调用
查看>>
swiper插件的的使用
查看>>