"rdtsc": "=a" (a0), "=d" (d0) 这是做什么的? [复制]

2024-04-08

我是 C++ 和基准测试的新手

我不明白这部分代码的作用是什么? 所以我发现了一些关于 edx、eax 寄存器的信息,但我不完全理解它是如何在代码中发挥作用的。所以我理解这段代码本质上返回了CPU周期的当前滴答声。那么,它是否将当前刻度存储到寄存器中,一部分存储在 hi 中,另一部分存储在 lo 中。并且,“=a”和“=d”是否指定将其存储在哪个寄存器中。

而把它分成两部分又有什么意义呢?

"rdtsc" : "=a" (lo), "=d" (hi) 

上下文中的代码:

int64_t rdtsc(){
    unsigned int lo,hi;
    __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
    return ((uint64_t)hi << 32) | lo;
}

It uses 内联组装 https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html打电话给rdtsc https://en.wikipedia.org/wiki/Time_Stamp_Counter返回 64 位整数的操作码。高的部分被存储到hi和低至lo.

在 Windows 和 Visual Studio 中,内联汇编在 x64 中不可用,您可以使用__rdtsc https://learn.microsoft.com/en-us/cpp/intrinsics/rdtsc?view=vs-2019.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

"rdtsc": "=a" (a0), "=d" (d0) 这是做什么的? [复制] 的相关文章

随机推荐

  • 几个纪元后的tensorflow-GPU OOM问题

    我使用tensorflow与Nvidia Geforce 1060 6G内存 训练CNN 但出现OOM异常 前两个 epoch 的训练过程很好 但在第三个 epoch 时出现了 OOM 异常 2017 10 27 11 47 30 2191
  • 使用 hashlib sha1 进行 Python 加密的基础知识

    我正在努力完全理解加密的工作原理和编码方式 尤其是使用 python 我只是想了解基础知识并以最简单的形式创建代码 我将在两个不同的站点之间传递用户 ID 但显然我需要使用私钥对其进行加密 以便 Website2 知道它来自 Website
  • 找不到 com.android.tools.build:aapt2:4.0.0-6051327 [重复]

    这个问题在这里已经有答案了 当我在android studio中运行java文件时 会发生以下错误 Could not find com android tools build aapt2 4 0 0 6051327 Searched in
  • 如何在 Android Marshmallow 上获取 wifi 扫描结果?

    我想在我的棉花糖设备上获取 WiFi 扫描结果 首先 我所在的地区有很多 wifi AP 如果在棉花糖设备上获取 WiFi 扫描结果 添加ACCESS COARSE LOCATION允许 我的来源 Override public void
  • 将 Django 应用程序部署到谷歌应用程序引擎

    我已按照谷歌云平台指南中的步骤进行操作 但仍然收到权限错误 这表明调用者没有权限 请问我做错了什么 这是失控的gcloud config list region us central1 zone us central1 f core acc
  • 番石榴中供应商的逆

    我正在寻找的逆Supplier
  • 抽象类的公共构造函数有充分的理由吗

    直接调用构造函数来创建对象是不可能的abstract班级 的构造函数abstract类只能从派生类中调用 因此它seems对我来说 抽象类的构造函数必须是protected或包私有 后者用于限制对包内的派生类使用构造函数的特殊情况 然而 J
  • 如何在点击EditText外部后隐藏Android上的软键盘?

    好吧 每个人都知道要隐藏键盘 您需要实现 InputMethodManager imm InputMethodManager getSystemService INPUT METHOD SERVICE imm hideSoftInputFr
  • Mysql 嵌套查询和 GROUP BY

    我正在尝试对我的数据库执行以下查询 SELECT source Month as t1 GROUP CONCAT SELECT SUM amount FROM reports GROUP BY Month as amount FROM re
  • 如何在应用程序内计费

    我从事编程多年 也做过一些专业的编程项目 最近 我有一个朋友询问如何创建一个电子商务网站 但我不得不拒绝她 因为我从未开发过可以计费的网络应用程序 将来我可能还需要编写一个基于订阅的 Web 服务 我的问题是 我该如何开始计费 我从来没有找
  • Python - 测试属性抛出异常

    Given def test to check exception is thrown self Arrange c Class Act and Assert self assertRaises NameError c do somethi
  • FirebaseInitProvider:FirebaseApp 初始化失败

    我们已经遵循了将 Firebase 添加到您的 Android 项目 https firebase google com docs android setup但我们在 Firebase 控制台中看不到应用程序接收数据 当我们启动应用程序时
  • 非终止 while 循环

    我只是想知道一些事情 我有以下代码 include
  • 如何在 Perl 中使用符号引用?

    在 Perl 中 如果一个变量保存另一个变量的名称 我如何使用第一个变量来访问另一个变量 例如 让 name bob bob jerk perlfan 我应该如何使用 name 来了解 Bob 是一个什么样的人 虽然我不太确定 但我模糊的记
  • 如何使用弱链接 CocoaPods 库构建 iOS 框架

    我正在尝试使用 Xcode 6 提供的新模板来构建一个 iOS 框架 Test framework 用于创建 Cocoa Touch 框架 该框架具有在 Podfile 中指定的不同依赖项 如 AFNetworking 或 Facebook
  • App Engine 上的 Servlet 响应中与缓存相关的 HTTP 标头被覆盖

    我在应用程序引擎上有一个提供图像的servlet Servlet 正确设置 HTTP 标头值以指示应缓存图像 但 App Engine 会覆盖这些标头 从而导致图像不被缓存 请注意 相同的代码以前可以工作 但现在一段时间不能工作 App 引
  • 在加载页面的所有元素之前加载 Chrome 扩展

    我想在页面的所有元素加载之前 而不是之后 加载我的 Chrome 扩展 这可能吗 谢谢 如果通过扩展你的意思是内容脚本那么你最多可以做的是设置 run at document start 清单中的财产意味着 内容脚本 文件是在 css 中的
  • 使用 PHP 的交互式 shell

    是否可以单独使用 PHP 创建交互式 shell 我的意思是像数据库一样 Python https en wikipedia org wiki Python 28programming language 29等等 如果是的话 怎么样 是的
  • Github 下载页面/按钮不再可见

    我曾经使用存储库中文件选项卡上的下载 添加下载 按钮上传二进制文件 这个功能好像没有了 有人知道为什么吗 临时 Github 问题 浏览器问题 GitHub 上传已于 12 月 11 日停止 请参阅博客文章 https github com
  • "rdtsc": "=a" (a0), "=d" (d0) 这是做什么的? [复制]

    这个问题在这里已经有答案了 我是 C 和基准测试的新手 我不明白这部分代码的作用是什么 所以我发现了一些关于 edx eax 寄存器的信息 但我不完全理解它是如何在代码中发挥作用的 所以我理解这段代码本质上返回了CPU周期的当前滴答声 那么