从 Asm 访问 C 中定义的全局变量

2023-12-03

我有一个包含全局变量 foo 的 C 文件。我如何访问foo来自另一个汇编程序。
我使用 i586-elf-as (GNU 汇编器)和 i586-elf-gcc (gnu 编译器)进行构建。


您可以只使用交易品种名称;as将所有未定义的符号视为外部符号。

检查编译器输出(gcc -S)和/或文档来查明 C 变量名称是否有前导_前置或不前置。 (int myglobal变成汇编_myglobal在许多非 ELF 平台上,但仍然myglobal在 Linux/ELF 上。)

当然,如果您使用 C++ 编译器,C++ 名称重整就会发生,除了extern "C"变量。


如果你想明确声明它,有一个.externGAS 忽略的指令(为了与其他一些 Unix 汇编器兼容)。GAS 手册中的文档

.extern foo       # ignored, no extra checking is done because of this

例如在 x86-64 上,lea myglobal(%rip), %rsi or mov $myglobal, %esi以 AT&T 语法将地址存入寄存器。

Or mov myglobal(%rip), %eax从中加载。或者mov global, %eax使用 32 位绝对地址以 32 位模式从中加载,因为 RIP 相对寻址仅在 64 位模式下可用。

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

从 Asm 访问 C 中定义的全局变量 的相关文章

  • 沿着长数据序列在固定大小的移动窗口中查找中值

    给定一个数据序列 可能有重复项 一个固定大小的移动 窗口 从数据开始处每次迭代时移动窗口 序列 使得 1 从窗口中删除最旧的数据元素并添加新数据 元素被推入窗口 2 求每次移动时窗口内数据的中位数 以下帖子没有帮助 有效地找到随机序列的中值
  • 全局变量用例

    我有几个脚本和模块 它们使用全局变量来完成很多事情 我的日志记录可以采用以下三种形式之一 简洁 详细和验证 没有实际操作的详细日志记录 仅验证提供的数据 我还有许多函数 它们根据运行的上下文 用户或机器 而做出不同的响应 并且正在执行的操作
  • Windows CE 6.0 和运行时链接到调试 DLL /MDd

    我在 x86 PC 上使用 Windows CE 6 0 R3 我已经为该平台构建了 NK bin 和 SDK 但我有一些问题需要了解如何使用 MTd 调试 DLL 构建控制台应用程序 如果我尝试构建这个 main c with MDd i
  • 如何自定义 ASP.Net Core 模型绑定错误?

    我只想从我的 Web API Asp net Core 2 1 返回标准化的错误响应 但我似乎不知道如何处理模型绑定错误 该项目刚刚从 ASP NET Core Web 应用程序 gt API 模板创建 我有一个简单的操作定义为 Route
  • 通过 EUSART PIC18F45K80 打印消息

    我正在尝试向 Docklight 发送串行消息 但始终收到空值 我正在使用带有 XC8 MPLAB X 的 PIC18F45K80 我的代码中的所有内容似乎都是正确的 但我想我错了 我该如何修复它 include
  • 如何(可移植地)在 C 和 C++ 中获取 DBL_EPSILON

    我正在 Linux AS 3 上使用 GCC 3 4 并试图找出DBL EPSILON 或者至少是一个不错的近似值 我怎样才能以编程方式获取它 在 C 中是std numeric limits
  • 为什么 .Net 框架指南建议您不要使用 ref/out 参数?

    显然 他们很 混乱 这是认真的原因吗 你还能想到其他的吗 你见过有多少开发人员并不真正理解 ref out 吗 我在真正需要的地方使用它们 但在其他地方则不然 它们通常仅在您想有效返回两个或多个值时才有用 在这种情况下它至少值得thinki
  • 为什么我在这段代码中不断得到两个相同的随机值? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么我的随机数生成器在 C 中不是随机的 https stackoverflow com questions 932520 why does it appear that my random num
  • 使用 C# 和 .NET Core 在 AWS Cognito 用户池中进行用户管理

    如何使用 C 和 NET Core 3 x 管理 AWS Cognito 用户池中的用户 在文档中找不到有关它的任何内容 Attilio Gelosa 的原创文章 我写这篇文章是希望对其他人有帮助 我必须阅读一页又一页的文档 并从 AWS
  • 在现代 x86-64 上计算 64 位整数的整数 Log10 的最快方法是什么?

    标题 我找到了大量 32 位示例 但没有找到完整的 64 位示例 使用这个帖子 https codegolf stackexchange com questions 47290 fastest way to compute order of
  • 不可能的事情发生了!这是什么意思?

    我遇到了一个有趣的运行时错误 我认为这是某种内存泄漏 我写了以下程序 C Code include
  • 如何在Phone类库项目中添加ResourceDictionary并访问它

    我正在开发一个项目 其中我有一个引用图书馆项目的子项目 在我的库项目 电话类库 中 如何创建 ResourceDictionary xaml 其中我需要添加一些样式并在 xaml 文件和 cs 文件中使用它 我需要访问 xaml 文件中的
  • 验证域用户凭据

    我需要一种方法来验证 Windows 上本机 C 的用户 密码对 输入的是用户名和密码 用户可以是 DOMAIN user 格式 基本上我需要编写一个函数 如果用户 密码是有效的本地帐户 则返回 true 第1部分 如果用户 密码在给定的域
  • Xamarin.Android JmDNS 绑定问题

    我开始研究 Xamarin Android 的 JmDNS 绑定 我设法构建了绑定 但无法从代码中引用它 https github com ytn3rd monodroid bindings tree master JmDNS https
  • 如何明智地解释这个编译器警告?

    当我执行这段代码时question https stackoverflow com a 51056490 2411320 我收到这个警告 warning format d expects argument of type int but a
  • OpenMP 超线程导致性能不佳:如何将线程绑定到核心

    我正在开发大型密集矩阵乘法代码 当我分析代码时 它有时会达到我的四核系统的峰值失败率的 75 而其他时候则达到约 36 代码执行之间的效率不会改变 它要么从 75 开始 并继续保持该效率 要么从 36 开始 并继续保持该效率 我已将问题追溯
  • C 中函数“fgets”的参数太少

    每当我编译这个错误时 我都会收到该错误 但我不知道为什么 我直接从书上抄袭这个 有人可以帮忙吗 include
  • 不兼容的指针到字符转换

    我正在编写一个程序 将卡片值写入 52 个点字符的多维数组中 该程序是一个测试数组 稍后我将其作为函数写入主程序中 在程序中 我通过以下方式初始化 for 循环计数0通过51 我用一个switch语句调制13将卡牌值分配给数组点 但是 我收
  • 应用非限定名称查找而不是依赖于参数的名称查找

    考虑标准 sec 3 4 1 3 中的一个示例 typedef int f namespace N struct A friend void f A operator int void g A a int i f a f is the ty
  • ASP.NET API:尚未为此 DbContext 配置数据库提供程序

    我正在尝试从我的 Net Core API 项目连接到 MySql 数据库 这是我的上下文类 public class MyContext DbContext public MyContext public MyContext DbCont

随机推荐

  • Excel VBA:“For”和“If”语句在一行上?

    是否有可能在VBA中放置一个For and If在一行中声明 我能得到的最接近的是 For i 0 To n If a i Then a b Next i 如果我写 For i 0 To n If a i Then a b Next i 我
  • Qt:如何使用 QSignalMapper 实现 QDialogBu​​ttonBox 用于非标准按钮?

    我有一个带有所有标准按钮和非标准按钮的 QDialogBu ttonBox 添加 QPushbutton 以创建非标准按钮 我可以为非标准按钮单独实现 SignalMapper 但在这种情况下 我必须添加 2 个插槽 QDialogBu t
  • Google 日历 API 事件空闲/忙碌/阻塞数据

    我一直在使用 Google Calendar API 并试图找出如何判断日历中的事件是否应被视为阻塞时间的事件 例如 哥伦布日 对于美国的许多人来说是一个全天的活动 假期 对他们的工作日没有影响 但会出现在日历上 我在其他地方读到 判断事件
  • 快速翻转动画翻转整个视图而不是子视图

    我需要在两个子视图之间切换 因为我使用翻转动画 但它翻转整个屏幕而不是子视图 这是我用来翻转的代码 UIView transitionFromView frontView toView backView duration 1 options
  • 如何编写一个无限循环来接收UDP数据?

    我正在尝试制作一个应用程序 它接收 UDP 数据并使用 python PyQt5 在列表视图中显示数据 当我启动接收器时 应用程序卡住并且没有响应 我怎样才能解决这个问题 请参阅下面的代码 import sys import os impo
  • 带有 LESS mixin 的“附加”属性值

    我正在寻找 LESS 中可能提供也可能不提供的功能 我有一个 mixin 它添加了带有框阴影的 发光 我在各种元素上使用它 按钮 输入等 glow box shadow 0 0 5px skyBlue 我正在寻找的是一种方法 如果元素已经有
  • 如何使用 PHP 7 安装 ext-curl 扩展?

    我已经使用安装了 PHP 7这个仓库 但是当我尝试跑步时composer install 它给出了这个错误 package 需要 ext curl gt 您的系统中缺少请求的 PHP 扩展curl 对于 PHP 5 您可以通过运行以下命令轻
  • 是否有任何解决方法可以使用最新的 Twitter REST API v1.1 获取 twitter 对话

    我正在开发一个项目 需要检索 Twitter 用户的对话 例如我想得到这条推文的所有回复英国广播公司世界服务台 使用休息 API v1 1我可以获得 Twitter 用户的时间线 推文 转发 但我没有找到任何有关获取特定推文回复的文档 工作
  • RxJS 等待 Promise 解决

    我仍在研究反应式编程 所以我很确定这是非常基础的 但是流转换的数量对于初学者来说是相当巨大的 我正在从 DOM 事件创建一个 Observable 此事件应依次触发 REST 调用 并且所有其他 DOM 事件将被忽略 直到此事件得到解决 c
  • 应用程序委托中全局变量的替代方案

    我正在开发一个带有速度计的应用程序 如动画 一个仪表和一个箭头来指示仪表上的某些内容 我将箭头的位置存储在应用程序委托中声明的全局变量中 我这样做是因为箭头位置已更新并由多个类使用 然而 我不确定这是一个好还是坏的设计决策 我的想法是 由于
  • Puppeteer 不会更改选择器

    我正在尝试自动执行查询数据的任务这个网站使用木偶师 因此 我需要选择数据集 每日摘要 第一个选项 然后选择位置类型 州 第三个选项 然后选择州 阿拉斯加 第二个选项 问题是我的代码没有更改为下一个表 因此 它不是在选择数据集中的第一个选项
  • python 函数中的调和平均值?

    我有两个函数可以给出精确度和召回率分数 我需要在使用这两个分数的同一库中定义一个调和平均函数 函数如下所示 这是函数 def precision ref hyp Calculates precision Args ref a list of
  • 从异步函数返回值node.js

    我知道这是 javascript 中关于函数异步行为最常见的问题 我仍然无法为我的用例找出可行的解决方案 我想做的是使用键查找 redis 缓存 我正在使用存在函数来检查密钥是否存在 如果存在 那么我将从缓存返回 如果不存在 那么我将设置该
  • Safari 媒体查询打印未正确使用 100% 高度

    我正在对一个应用程序使用打印媒体查询 该应用程序在 Chrome Edge Firefox 上运行良好 但在 Safari 上失败 我使用高度 100 是为了让它填充打印页面 在 safari 上它似乎使用百分比作为元素本身的百分比 我在下
  • 未处理的 Promise 拒绝:this._next 不是函数:@angular/fire/messaging 中的区域

    当我在前台收到 firebase 推送通知时 通过使用 angular fire messaging 方法是 this angularFireMessaging messages subscribe payload gt console l
  • 如何在 Javascript 中设置 cookie 在 1 小时后过期?

    如何设置此 cookie 在当前时间一小时后过期 document cookie username value expires WHAT GOES HERE path Code var now new Date var time now g
  • Socket.io android java客户端接收消息和发送文件示例

    有谁有任何示例代码演示如何在 java 客户端上接收 socket io 的消息 另外 是否有从同一个 socket io java 客户端发送文件 二进制 图片的示例 基本上是来自java而不是javascript客户端的示例代码 and
  • Datagrid wpf C# 应用程序中的复选框

    我正在使用数据网格为学生记录创建一个 C wpf 应用程序 如何在标题中创建复选框以选择 取消选择一行中的所有复选框 如何一键选中行中的复选框以便我们可以编辑 删除记录 我们如何选择多个复选框来删除 我创建了一种行为 允许将控件中的属性绑定
  • 如何在 tsql contains 函数中搜索 &(与号)?

    我有一个表 T 其中有一个列 C 其中包含包含字符 的文本 但是如果我执行以下查询 它不会返回任何内容 尽管我可能有 10 行 SELECT FROM T WHERE Contains C a b 使用双引号使其成为搜索词 SELECT F
  • 从 Asm 访问 C 中定义的全局变量

    我有一个包含全局变量 foo 的 C 文件 我如何访问foo来自另一个汇编程序 我使用 i586 elf as GNU 汇编器 和 i586 elf gcc gnu 编译器 进行构建 您可以只使用交易品种名称 as将所有未定义的符号视为外部