C++内联汇编:如何处理引用?

2024-06-30

如何处理内联汇编器中函数的引用?我正在尝试这个

void foo(int& x)
{
    __asm mov x, 10
}

int main()
{
    int x = 0;
    foo(x);
    std::cout << x << std::endl;
}

但是函数执行后 x 仍然是 0,但是这个工作正常

int x = 0;
__asm mov x, 10
std::cout << x << std::endl;

怎么解决呢?

Thanks.


引用是具有值语义的指针 - 在汇编语言中,这些语义是不相关的,因此您只剩下一个指针:

void foo(int& x)
{
    __asm { 
        mov eax, x
        mov DWORD PTR [eax], 10
    }
}

(当然,YMMV 取决于编译器、版本、优化等。使用内联汇编时的所有常见内容。)

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

C++内联汇编:如何处理引用? 的相关文章

  • 嵌入式控制台日志优化

    不久前我曾发过一篇文章this https stackoverflow com questions 25204389 how to get unique values at preprocessing across files关于SO的问题
  • C#:迭代数据表:Rows、Select() 或 AsEnumerable()

    foreach DataRow row in myDataTable Select foreach DataRow row in myDataTable AsEnumerable foreach DataRow row in myDataT
  • 画笔和钢笔使用指南

    制作 GDI 画笔和钢笔有多贵 我应该在添加所需的基础上创建它们并将它们包装在 using 中以便快速处理它们 还是应该创建一个类似于 System Drawing Brushes 类的静态类 IMO 它们足够高效 您通常不应该创建在多个方
  • HTTPS文件下载C#

    我需要下载隐藏在 HTTPS 连接后面的文件 我对下载安全网站后面的文件不熟悉 我尝试使用凭据来解决此问题 但无济于事 据我所知 您需要创建并使用证书来完成此操作 但我没有找到任何示例 任何帮助表示赞赏 这就是我现在所拥有的 WebClie
  • 如何在 C# 中检查互联网连接是否可用

    我为一家公司开发了一个软件 出于某种许可目的 我使用远程数据库来允许 禁止使用该软件 每次用户登录软件时都会应用此任务 如果互联网连接不存在或对远程数据库的查询失败 用户会收到错误 他无法登录软件并显示远程数据库http地址 我不希望他看到
  • 如何更改 Visual C++ 2010 中的输出可执行文件名?

    有没有办法将输出可执行文件名称 ProjectName exe 更改为 Visual C 2010 中的某个自定义名称 而不更改项目名称 Thanks 在 配置属性 gt 常规 下的 项目属性 中 有一个名为 目标名称 的属性 它默认为 P
  • C++ 相当于 fscanf()?

    请不要说它是 fscanf P 我正在尝试替换这一行 if fscanf fp P c n ch 1 如果我理解正确的话 它会尝试读取 char 并将其存储到 ch 前提是它位于 P 和 n 之间 是对的吗 如果成功 它会返回1 它读取的字
  • 在 OpenCV C++ 中使用 gpu::GpuMat

    我想知道如何修改gpu GpuMat 事实上我想知道是否可以使用gpu GpuMat like a cv Mat 我想做这样的事情 cv namedWindow Result cv Mat src host cv imread lena j
  • 在 C++ 中将注册表值设置为宽字符串 (WCHAR)

    我正在尝试在 C 中向注册表添加宽字符串 问题是RegSetValueEx 函数不支持宽字符 仅支持BYTE type BYTE unsigned char WCHAR myPath C exe RegSetValueExA HKEY CU
  • UWP 导航 (Template10)、枢轴控制、多帧

    我正在尝试在我的 UWP 应用程序中实现以下导航样式 使用 Template10 但正在努力如何使用多个帧作为独立的历史堆栈 在枢轴的每个框架内 我希望有一个独立的框架 它有自己的历史记录和后堆栈 只能通过枢轴在框架之间导航 我正在考虑使用
  • Windows窗体C#通过代码改变用户控件

    我有一个 Windows 窗体 我不想将任何其他 Windows 窗体设置为一个 Windows 窗体和不同的用户控件 如何在用户控件之间进行更改 例如以编程方式隐藏一个用户控件并显示另一个用户控件 private void Btt inf
  • 如何在C++中从Imagemagick图像获取缓冲区

    我正在使用 ImageMagick 库进行图像处理 我需要加载 bmp 图像 将其转换为 jpeg 将其加载到缓冲区中并通过网络发送 但是 我在 ImageMagick 中找不到任何可以在缓冲区中转换和存储数据的支持函数 我只能写入文件 尝
  • 将 wav 文件存储在数组中

    我需要一种快速方法来将 wav 文件的所有样本存储在数组中 我目前正在通过播放音乐并存储来自示例提供程序的值来解决这个问题 但这不是很优雅 从 NAudio 演示中 我有带有此方法的 Audioplayer 类 private ISampl
  • 将“列表”项附加到 StringBuilder

    我尝试将项目附加到List
  • 在运行的 Windows 控制台应用程序中处理拖放文件

    首先澄清一下 我是not询问如何将文件拖放到 exe 图标上 我想知道如何处理拖放到已经运行win32 控制台应用程序 我也是not询问如何通过 Windows 消息泵处理基于 WinMain 的应用程序内部的拖放 我想在带有入口点的程序内
  • 在哪里可以查看 LINQ 源代码?

    我需要编写自己版本的 except 方法 或者至少以某种方式修改 LINQ 方法的工作方式 我正在与大型自定义对象列表进行比较 并且需要将匹配项从列表 A 连接到列表 B 我认为除外哈希表构建是进行比较的最快方法 但该方法只会返回非匹配项
  • 双击 C# 中的 Windows 窗体

    如何检测哪个鼠标按钮双击了表单 即左键 右键或中键 Updated 我使用的是 NET2 0 将最后点击的按钮存储在MouseUp事件 然后在双击事件中检查该事件 示例代码 MouseButtons lastButtonUp MouseBu
  • 如何在预处理器中检测X32 ABI或环境?

    X32是一个 ABIamd64 x86 64使用 32 位指针的 CPU 这个想法是将 x86 64 的较大寄存器集与 32 位指针产生的较小内存和缓存占用空间结合起来 它可提供高达约 40 的加速 看x86 x32 和 x64 架构之间的
  • Sharepoint 客户端 GetFolderByServerRelativeUrl 文件夹修改日期

    我试图在使用 GetFolderByServerRelativeUrl 函数时检索文件夹的 修改日期 和 创建日期 我该怎么做 我只能从中获取relativeUrl 和文件夹名称 下面是我为检索文件夹所做的操作 请帮忙 FolderColl
  • 为什么不允许静态常量浮点数? [复制]

    这个问题在这里已经有答案了 我有一个类 它本质上只是保存了我的应用程序中使用的一堆常量定义 但由于某种原因 longs 编译但是float不 class MY CONSTS public static const long LONG CON

随机推荐

  • 如何在 Spring Data MongoDB 中仅返回查询的特定字段?

    我们如何在 Spring Data Mongo 中选择特定字段 我尝试了以下操作 但我得到了强制转换异常Foo to String Using Query Query value path 0 fields path 0 String fi
  • 如何在多项目解决方案中使用.net core依赖注入?

    我是 ASP NET Core 的新手 我想做的是构建多项目解决方案并使用依赖项注入在项目之间传递接口 我所知道的是 在 ASP NET core 项目中我们有ConfigureServices中的方法startup cs文件来注册我们的接
  • 铸造泛型和泛型类型

    考虑一下 我有以下 3 个类 接口 class MyClass
  • 将 Jupyter Notebook 的 localhost:8888 默认服务器更改为其他

    我有两台机器通过局域网连接 其他系统的IP地址是192 1xx x x 我想在我的机器上运行 jupyter ipython 查询 该查询可以在他的机器上执行 在 ipython 笔记本启动时 有一个黑屏 其中包含以下内容 I 11 12
  • 从java管理unix进程的最佳方法是什么?

    我正在寻找一些简单的任务 例如列出用户的所有正在运行的进程 或者通过pid等杀死特定进程 来自Java的基本unix进程管理 有没有相对成熟且有文档的库 我可以从 JVM 运行外部命令 然后解析标准输出 错误 但这似乎需要大量工作 而且一点
  • Android应用程序:如何读取“设置”下的字体大小?

    我正在开发一个 Android 应用程序 我想阅读下面的字体大小设置 gt 显示 gt 字体大小 因此 如果用户将其字体大小设置为小 大 巨大 我想将其自动应用于我的所有文本 我使用的是三星 Galaxy Nexus Android 4 1
  • 在Python中绘制像素的最佳方法[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想知道 用 x 和 y 值在 python 中绘制像素的最简单方法是什么 可能最简单的方法是使用PIL http effbot org i
  • Erlang:supervisor(3),添加子进程

    我在哪里可以找到有关如何将动态子进程添加到现有主管的示例 simple one for one重启策略 我做了一些研究 以下是我所拥有的 首先 这是一个supervisor回调模块的示例 module root sup behaviour
  • FtpWebRequest 关闭上传流挂在大文件上

    我正在尝试使用 FtpWebRequest 上传一些文件 这适用于小文件 例如 我可以a 不关闭它 b 不费心从服务器获取响应 但这似乎不对 请参阅下面的代码 无论是否使用 SSL 都会出现同样的问题 output Close 是挂起的行
  • 从内存加载程序集

    我正在移植一个 Java 应用程序 其中类在运行时从内存 字节数组 加载并 执行 我试图在 C 中实现同样的目标 但遇到问题 System IO FileNotFoundException异常 当尝试从字节数组加载程序集时 使用AppDom
  • 在没有 Flash 的情况下用 HTML / js 录制音频?

    从麦克风录制音频并将 ajax 发回服务器 真的不知道如何在 Flash 中做到这一点 并希望它保持简单 目前还没有浏览器实现WHATWG 设备 API http www whatwg org specs web apps current
  • 将图像从 Stream/StreamReader 加载到 Image 或 RawImage 组件

    我正在使用 AWS Unity v3 3 50 0 从下载的 S3 SDK AWSSDK S3 3 3 5 4 unitypackage https aws amazon com mobile sdk https aws amazon co
  • Amazon SQS 旧配置文件格式警告

    我正在将消息发布到 Amazon SQS 队列 启动时 我在日志中收到以下警告 http nio 9090 exec 2 BasicProfileConfigLoader The legacy profile format requires
  • 在 GraphicsMagick 中对流中的 pdf 第一页进行缩略图

    如果我有一个 pdf 文件并且正在运行 我知道如何使用 GraphicsMagick 制作 pdf 第一页的缩略图gm本地 我可以这样做 gm pdfFileName 0 background white flatten resize 20
  • Magento - 将媒体库属性添加到产品平板中

    如何将 media gallery 属性类型添加到产品平面表中 以便可以在产品列表中使用它 可以通过将 用于产品列表 定义为 是 来添加它们 完成此操作后 您将需要重新索引产品平面 编辑 请参阅解决方案以获取最终答案 Source 我可以向
  • Azure ARM 无法创建托管环境:“位置值无效”

    我无法在 ARM 模板中创建 HostingEnvironments 我通常使用 location resourceGroup location 但它似乎不适用于 HostingEnvironments 类型的资源 apiVersion 2
  • Asp.Net Core 的 Kestrel Web 服务器 - 一段时间后是否回收/重新加载

    简单的菜鸟问题 我即将使用一个小型 NET 核心应用程序主机投入生产 该主机托管在 digitalocean 的 Droplet 中 我一直使用 IIS 托管网站 但我想迁移到 Linux 发行版并使用 nginx 作为反向代理 我的问题正
  • 如何将 QBFC13_0.msm 添加到 Clickonce

    网络上似乎没有记录如何执行此操作的分步过程 如果提到的话 它的记录非常少 而且我无法遵循他们建议的复杂路径 我是 ClickOnce 的新手 我已经能够让我的 C 程序在用户计算机上正确安装 但当然我得到 22E88GD7 FB0B B90
  • 使用自定义指标的标准差选择带插入符号的调整参数

    我将插入符号与自定义拟合指标一起使用 但我不仅需要最大化该指标 还需要最大化其置信区间的下限 所以我想最大化类似的东西mean metric k stddev metric 我知道如何手动执行此操作 但是有没有办法告诉插入符使用此函数自动选
  • C++内联汇编:如何处理引用?

    如何处理内联汇编器中函数的引用 我正在尝试这个 void foo int x asm mov x 10 int main int x 0 foo x std cout lt lt x lt lt std endl 但是函数执行后 x 仍然是