如何在 XMM 寄存器之间移动 128 位值?

2024-01-22

汇编中看似微不足道的问题:我想将整个 XMM0 寄存器复制到 XMM3。我试过了

movdq xmm3, xmm0

但 MOVDQ 不能用于在两个 XMM 寄存器之间移动值。我该怎么办?


It's movapd, movaps, or movdqa

movaps xmm3, xmm0

他们都做同样的事情,但有一个问题:

  • movapd and movaps在浮点域中操作。
  • movdqa在整数域中运算

根据您的数据类型使用适当的方法以避免域更改停顿。

另外,没有理由使用movapd。总是使用movaps相反,因为movapd需要一个额外的字节来编码。

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

如何在 XMM 寄存器之间移动 128 位值? 的相关文章

  • 是否可以在VM内使用VMX CPU指令?

    VM guest 内部的进程是否有可能使用 VMX AMD V VT x CPU 指令 然后由外部 VMM 处理而不是直接在 CPU 上处理 Edit 假设外部VM使用VMX本身来管理其虚拟客户机 即它在Ring 1中运行 如果可能的话 是
  • 在 x86 汇编中将 64 位常量移至内存

    我正在使用 Intel x64 程序集 NASM 编译器 尝试将 0x4000000000000000 常量移至内存 该常量在 ieee 754 标准双精度中应等于 2 0 我正在使用的代码是 define two 0x4000000000
  • 高效memcspn

    有谁知道 memcspn 函数的有效实现吗 它的行为应该类似于 strcspn 但在内存缓冲区中查找跨度 而不是在以 null 结尾的字符串中查找跨度 目标编译器是 VisualC 谢谢 卢卡 一种近乎最佳的实现 size t memcsp
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • 为什么在展开的 ADD 循环内重新初始化寄存器会使其运行速度更快,即使循环内有更多指令?

    我有以下代码 include
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • 何时可以重用avx指令中的源寄存器

    在 avx 指令中用作源的寄存器何时可以在指令开始处理后重用 例如 我想使用vgatherdps该指令消耗两个 ymm 寄存器 其中之一是位移索引 我意识到vgatherdps由于数据的局部性较差 因此需要花费大量时间来收集 位移索引寄存器
  • 整数溢出问题

    我不断遇到整数溢出问题 我不知道如何解决它 有人可以帮忙吗 edx 包含 181 eax 包含 174 xor eax edx mov edx 2 div edx 假设你谈论的是x86 div edx这实际上没有意义 32位div将edx
  • CISC 机器 - 它们不只是将复杂指令转换为 RISC 吗?

    也许我在架构上存在误解 但如果机器有 比如说 乘法指令 该指令是否未转换为更小的指令 或者过于复杂以至于最终与等效的 RISC 指令具有相同的速度 乘法是一个不好的例子 它在两种体系结构中都是一条指令 将上面的 乘法 替换为 CISC 中更
  • 如何在 GCC C++ 中编写多行内联汇编代码?

    这看起来不太友好 asm command 1 command 2 command 3 我真的必须在每一行加上双引号吗 另外 由于多行字符串文字在 GCC 中不起作用 我也无法欺骗它 我总是在互联网上找到一些例子 该人手动插入制表符和换行符而
  • 在 Intel x86 架构上使用非 AVX 指令移动 xmm 整数寄存器值

    我有以下问题 需要使用 AVX2 以外的任何工具来解决 我有 3 个值存储在 m128i 变量中 不需要第四个值 需要将这些值移动 4 3 5 我需要两个功能 一个用于按这些值进行右逻辑移位 另一个用于左逻辑移位 有谁知道使用 SSE AV
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 如何计算汇编中的内存位移?

    我一直在研究 yasm 汇编语言 并生成了一个包含以下内容的列表文件 我需要帮助理解第一列中的内存位移是如何计算的 提前致谢 1 line 1 1 memory asm 2 section data 3 00000000 04000000
  • 将 XMM 寄存器压入堆栈

    有没有办法将打包双字整数从 XMM 寄存器推送到堆栈 然后在需要时将其弹出 理想情况下 我正在寻找通用寄存器的 PUSH 或 POP 之类的东西 我已经检查了英特尔手册 但我要么错过了命令 要么没有 或者我是否必须将值解压到通用寄存器然后推
  • 嵌入式系统:使用汇编语言时的内存布局

    根据我的理解 嵌入式系统运行机器代码 有多种方法可以生成此代码 一种是用 C 等高级语言编写程序 然后使用编译器获得这样的代码 另一种方法是用汇编语言为该嵌入式系统编写指令 并使用汇编器将其转换为机器代码 现在我们得到了加载到系统并执行的机
  • x86 程序集 Pushl/popl 不适用于“错误:后缀或操作数无效”

    我是汇编编程的新手 正在努力解决编程基础 http savannah nongnu org projects pgubook 在带有 GNU 汇编器 v2 20 1 的 Ubuntu x86 64 桌面上 我已经能够汇编 链接执行我的代码
  • 为什么 LED 保持亮起而不是闪烁?

    这是使用 pic16f676 中的 TIMER0 中断使 LED 闪烁的 MPASM 代码 端口 A 的引脚 0 RA0 未切换至关闭位置 请帮忙 我是图片组装的新手 我想掌握图片 有没有高手帮我学习一下 我需要以 1 秒的间隔眨眼 代码是
  • INT 13h 无法读取超出特定扇区的数据

    我正在为我的操作系统编写内核 在将磁盘扇区加载到内存时遇到问题 以下是从磁盘加载扇区的函数代码部分 mov ax 0x3000 mov es ax mov ax 0x0201 mov bx word ptr bp 6 bx 0x000 0x
  • 处理器在操作码​​和数据之间有何不同? [复制]

    这个问题在这里已经有答案了 我正在尝试编写一个反汇编程序 我想知道处理器如何区分操作码和数据字节 例如 这是 Hello World 的字节表示 0x48 0x65 0x6c 0x6c 0x6f 0x20 0x57 0x6f 0x72 0x
  • 为什么这个函数在额外读取内存时运行速度如此之快?

    我目前正在尝试了解 x86 64 上某些循环的性能属性 特别是我的 Intel R Core TM i3 8145U CPU 2 10GHz 处理器 具体来说 在循环体内添加一条额外的指令来读取内存几乎可以使性能提高一倍 而细节并不是特别重

随机推荐

  • 通过 itext pdf 库进行图像旋转

    我无法通过在java程序中使用itext pdf库从中心或任何固定点旋转图像 当我旋转图像时 它的x和y坐标会发生变化 请在这方面帮助我 Image pdfImage Image getInstance assets product png
  • 通过 JDBC 显示多列索引的列名

    有谁知道如何获取跨多个列的索引的列名 请参阅SQL via JDBC 我确实知道如何获取所有索引列 请参阅代码 但这样我就无法看到哪些列链接到单个索引 CREATE TABLE IF NOT EXISTS foo id int 11 NOT
  • CSS3 Flexbox 布局一行最多 3 个子项目

    在将下一个子元素推入新行之前 CSS 中是否有一种简单的方法可以在同一行上拥有固定的最大子项数 据我了解 Flexbox 如果子项目在其上方的行上没有足够的可用空间 则只会将其推入新行 但我正在寻找一个 CSS 规则或函数 让我说 我希望任
  • 将用户表单复制到另一个工作簿

    我已经寻找过这个问题的答案 但找不到任何与我正在寻找的内容完全匹配的内容 如果有人有答案或可以为我指出一个可以回答这个问题的方向 那就是非常感激 我曾讨论过构建一个将数据输入工作簿的解决方案并已成功构建它 但是需要添加到的工作簿是一个非常活
  • 如何使用现代版本的 CodePipeline 进行 S3 部署

    我正在尝试使用最新版本的 AWS CDK for typescript 1 128 设置一个全新的管道 管道的创建非常简单 我已经添加了源代码和构建阶段 没有任何问题 这里的目标是自动部署静态登陆页面 到目前为止我有这段代码 const l
  • ASP.NET Core 5 既不尊重 JsonConverter 也不尊重 TypeConverter

    标题是非常不言自明的 ASP NET Core 5 既不尊重 JsonConverter 也不尊重 TypeConverter 符号例如 TRX USDT 应该被分割 并转换为new Symbol TRX USDT 因为我已经这样做了 基本
  • 比较数组时难以填充列表

    在下面我想使用 GetUsersRole 但对显示的部分有困难 我想将 Roles 值与 usersRole 进行比较 如果 Role usersRole 则 UserRole true 否则为 false 基本上我想要这样的结果 用户1
  • 今天我该如何使用装饰器?

    我看到今天已经在一些 javascript 代码中使用了装饰器 我的问题实际上有两个方面 First 如果装饰器还没有最终确定 今天怎么可能在生产代码中使用它们呢 浏览器支持会不会不存在 Second 鉴于今天可以使用它 正如一些开源项目所
  • ajax调用完成后开始下载文件

    ajax type POST url processform php dataType json data name name email email city city country country day day month mont
  • 如何在textview上显示最新的附加文本?

    我正在开发一个聊天应用程序 每当我提交或接收短信时 我都会将它们附加到聊天框中 当列表变长时 我需要向下滚动才能看到它们 如何让它自动滚动到新追加的文本
  • Angular-jwt 令牌未在我的 http 请求标头中发送

    在我的 Angular 应用程序中 我向后端服务器的端点 api token 发送 http GET 请求 如下所示 并接收令牌 后端 service ts authenticate userName String passwd Strin
  • 是否可以将 C# 单例包装在接口中?

    我目前有一个类 其中只有静态成员和常量 但是我想将其替换为封装在接口中的单例 但是我该如何做到这一点 记住我见过的每个单例实现都有一个静态实例方法 从而违反了接口规则 一个需要考虑的解决方案 而不是自己动手 是利用 IoC 容器 例如Uni
  • PostgreSQL 11 中外部表的并行追加

    PostgreSQL 11 中的外部表是否可以实现并行追加 就像本地表一样 本地表 select version version PostgreSQL 11beta3 on x86 64 pc linux gnu compiled by g
  • 在 pyqt 中使用 sys.exit() 和 app.exec_

    任何人都可以解释使用的相对优点sys exit app exec 而不是更简单的app exec 在 PyQt 中启动 GUI 我是 PyQt 的新手 并且看过这两个示例 当 Unix 风格的应用程序退出时 他们向其父进程返回一个数字 ht
  • 我如何确定工作的状态?

    我有一个安排作业的存储过程 这项工作需要很长时间才能完成 大约 30 到 40 分钟 我需要了解这份工作的状态 以下详细信息会对我有所帮助 1 如何查看已安排在未来某个时间且尚未开始的所有作业的列表 2 如何查看正在运行的作业列表以及它们运
  • 在哪里可以找到有关 Mach 内核消息传递的好文档 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Windows 10 上安装 PostgreSql 12 时出现数据库集群错误

    当我尝试在 Windows 计算机上安装 PostgreSql 11 12 时 出现以下错误 初始化数据库集群时出错 以下是详细信息 端口号 5432 安装位置 我尝试将其安装在 C ProgramFiles 中 也尝试直接安装在 C 盘中
  • 如何在 Python 中检查 .h5 文件

    如何在 Python 中查看给定 h5 文件有哪些变量 数据集等 我可以通过运行这个来读取文件 import h5py f h5py File filename r 我现在如何查看我的 h5 文件有哪些变量 Running f keys 输
  • TeX/LaTeX 的继任者即将到来吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 TeX LaTeX 很棒 我在很多方面都使用它 它的一些优点是 它使用文本文件 这样可以区分输入文件 并且有许多工具可以处理文本 它非常灵活 它
  • 如何在 XMM 寄存器之间移动 128 位值?

    汇编中看似微不足道的问题 我想将整个 XMM0 寄存器复制到 XMM3 我试过了 movdq xmm3 xmm0 但 MOVDQ 不能用于在两个 XMM 寄存器之间移动值 我该怎么办 It s movapd movaps or movdqa