zoukankan      html  css  js  c++  java
  • RDTSC

    http://scc.qibebt.cas.cn/docs/optimization/VTune(TM)%20User's%20Guide/mergedProjects/analyzer_ec/mergedProjects/reference_olh/instruct32_hh/vc275.htm

    RDTSC - 读取时间标签计数器

    操作码

    指令

    说明

    0F 31

    RDTSC

    将时间标签计数器读入 EDX:EAX

    说明

    将处理器的时间标签计数器的当前值加载到 EDX:EAX 寄存器。时间标签计数器包含在 64 位 MSR 中。MSR 的高 32 位加载到 EDX 寄存器,低 32 位加载到 EAX 寄存器。处理器每时钟周期递增时间标签计数器 MSR 一次,在处理器复位时将它重设为 0。

    寄存器 CR4 中的时间标签禁用 (TSD) 标志限制 RDTSC 的使用。清除 TSD 标志时,RDTSC 指令可以在任何特权级别执行;设置此标志时,指令只能在特权级别 0 执行。在特权级别 0 执行时,时间标签计数器还可以使用 RDMSR 指令读取。

    RDTSC 指令不是序列化指令。这样,在读取计数器之前,它没有必要等到前面的所有指令都已执行。类似地,在执行读取操作之前,后面的指令也可以开始执行。

    此指令在“英特尔(R) 体系结构”的奔腾(R) 处理器中引入。

    操作

    IF (CR4.TSD  0) OR ((CR4.TSD  1) AND (CPL=0))
    THEN
    EDX:EAX TimeStampCounter;
    ELSE (* CR4 is 1 and CPL is 1, 2, or 3 *)
    #GP(0)
    FI;

    影响的标志

    无。

    保护模式异常

    #GP(0) - 如果寄存器 CR4 中的 TSD 标志设置为 1,并且 CPL 大于 0。

    实地址模式异常

    #GP - 如果寄存器 CR4 中的 TSD 标志设置为 1。

    虚 8086 模式异常

    #GP(0) - 如果寄存器 CR4 中的 TSD 标志设置为 1。

  • 相关阅读:
    mysql参数优化
    看见的一个mysql面试题
    面向对象的继承
    面向对象的权限修饰符
    php实现无限极分类
    php的冒泡排序
    frame框架的跳转
    thinkphp中open路径问题
    mysql触发器
    mysql事务
  • 原文地址:https://www.cnblogs.com/zhangxiaosong/p/3528630.html
Copyright © 2011-2022 走看看