主要 C/C++ 编译器生成的代码中的寄存器分配规则

2023-12-04

我记得以前(32 位 Intel 处理器之前)的一些规则,当时(至少对我来说)非常频繁地必须分析 C/C++ 编译器(在我的例子中,当时是 Borland/Turbo)生成的汇编输出查找性能瓶颈,并将汇编例程与 C/C++ 代码安全地混合。诸如使用 SI 寄存器之类的事情this指针,AX 用于返回值,当汇编例程返回时应保留哪些寄存器等。

现在我想知道是否有一些更流行的 C/C++ 编译器(Visual C++、GCC、Intel ...)和处理器(Intel、ARM ...)的参考,如果没有,在哪里可以找到要创建的部分一。有想法吗?


您正在询问“应用程序二进制接口”(ABI)和调用约定。这些通常由操作系统和库设置,并由编译器和链接器强制执行。 Google 搜索“ABI”或“调用约定”。一些出发点来自维基百科 and ARM 版 Debian.

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

主要 C/C++ 编译器生成的代码中的寄存器分配规则 的相关文章

随机推荐

  • Keras:使用模型的一阶导数和二阶导数之和作为最终输出

    假设我使用 Keras 创建了这个模型 model Sequential model add Dense 32 activation tanh input dim 1 model add Dense 10 activation tanh m
  • 子类上的急切加载关联

    我有以下 简化的 类层次结构 def Parent lt ActiveRecord Base end def Child lt Parent belongs to other end def Other lt ActiveRecord Ba
  • jiffies 在无滴答内核中如何递增?

    内核维护一个全局变量 名为jiffies它保存系统启动时的滴答数 定时器中断数 每次发生定时器中断时 内部内核计数器的值都会递增 在无滴答内核 动态滴答中 中断不会定期发生 那么jiffies增加 的价值jiffies总是更新调用do ti
  • Jackson/Hibernate、元获取方法和序列化

    我们有很多具有嵌套关系的休眠实体类 我正在尝试找到将给定实体转换为等效 json 格式的最佳方法 我了解 JsonIgnore Jackson mixins 和 JsonFilters 并且一直在尝试这些 我们面临的挑战如下 使用 OneT
  • 如何通过单击按钮打印 HTML 内容而不是页面? [复制]

    这个问题在这里已经有答案了 我想在用户单击按钮时打印一些 HTML 内容 一旦用户单击该按钮 浏览器的打印对话框将打开 但不会打印网页 相反 它会打印页面上未显示的其他一些 HTML 内容 在问这个问题时 我脑子里几乎没有解决方案 但我不确
  • 如何防止文本元素中出现字母?

    我喜欢最大长度为 3 的输入 这些输入值只能是数字 不能是字母 参考这篇文章 为什么 在 Safari 中不起作用 你可以看到我不能使用
  • Vue DOM 图像无法正确显示

    我正在使用 Vue 框架并使用以下命令创建图像DomUtil Create功能 在此图像中 我想动态地将源写入该图像 但该图像不会向用户显示 我使用以下命令在页面上放置了一个普通图像 img 标签 它在这里工作 仅当创建 DOM 元素时它才
  • 如何使用 urllib 跟踪重定向?

    我正在 Python 3 中创建一个脚本 该脚本访问如下页面 example com daora zz asp x qqrzzt 使用 urllib request urlopen example com daora zz asp x qq
  • 如何在 Google Apps 脚本中使用 AngularJS

    是否可以使用 Angular js 作为使用 Google Apps 脚本中的 HtmlService 提供服务的 Web 应用程序的一部分 我也改变了Code gs文件如下链接所述 如何在 Google Apps 脚本提供的 HTML 网
  • .NET 框架中最安全的哈希算法是什么?

    生成的哈希值的大小和算法的速度并不重要 我真的只对它是最安全的选择感兴趣 我也不想使用任何第三方库 我使用的 NET 框架版本是 3 5 如果这有什么区别的话 我会想SHA512将是内置哈希算法的最佳选择 它是非常安全的算法的最大哈希形式
  • Python 彗星服务器

    我正在构建一个具有实时提要 类似于 Facebook 的新闻提要 的 Web 应用程序 我想通过长轮询机制对其进行更新 据我所知 对于 Python 我的选择几乎是使用 Stackless 从他们的 Comet wsgi 示例构建 或 Co
  • Openpyxl:将背景颜色设置为行和列属性错误

    看了这里的几个例子后 我尝试将背景颜色设置为整行和整列 我已经做好了 import openpyxl from openpyxl styles import PatternFill wb openpyxl load workbook sel
  • 如何在 Go Web-Server 和 Vue.js 前端之间交换数据? http 帖子:404

    我试图了解如何在非常精简的 golang Web 服务器和 vue js 前端之间交换数据 这是 server gorillamux go 文件 package main import encoding json github com go
  • 如何使用反射调用 IDBSet.FirstOrDefault(predicate)?

    给定一个 IDbSet 其中 Person 包含 Id 属性 我通常如何执行以下命令 var p PersonDbSet FirstOrDefault i gt i Id 3 我可以构建谓词 并获取对 FirstOrDefault 扩展方法
  • 使用 Oracle Wallet 从 PHP 连接到 Oracle DB

    是否可以将 PHP 配置为使用安全的外部密码存储 如中所述http download oracle com docs cd B19306 01 network 102 b14266 cnctslsh htm 是的 这是可能的 您需要 1 创
  • ActiveRecord 中的浮点型与小数型

    有时 Activerecord 数据类型让我感到困惑 呃 经常 我永恒的问题之一是 对于特定情况 我应该使用 decimal or float 我经常看到这个链接ActiveRecord 十进制与 浮点 但答案还不够明确 无法让我确定 我见
  • 无法使用命名空间从动态类中获取常量

    我无法从使用字符串变量和 PHP 5 3 定义的类中获取常量 命名空间 例子 use Some Foo Bar class Bar echo class LOCATION 其中 LOCATION 是一个正确定义的常量 我收到的错误表明 Ba
  • 如何以印地语语言以 unicode 形式存储数据

    我在用PHP and MySQL申请 问题是 如何将数据存储在MySQL 可读格式或 format 当用户在文本框中输入数据并单击提交时 我们会获得不同格式的数据 我们需要做什么来转换并存储在MySQL以可读的格式 选择utf8字符集并ut
  • 具有重复标签的ggplot轴自定义顺序

    set seed 357 x lt data frame name sample letters 10 val runif 10 stringsAsFactors F x c 2 6 name lt c k k ggplot x aes x
  • 主要 C/C++ 编译器生成的代码中的寄存器分配规则

    我记得以前 32 位 Intel 处理器之前 的一些规则 当时 至少对我来说 非常频繁地必须分析 C C 编译器 在我的例子中 当时是 Borland Turbo 生成的汇编输出查找性能瓶颈 并将汇编例程与 C C 代码安全地混合 诸如使用