gcc - 如何使用浮点编写内联汇编
问题描述
我正在编写一个简单的程序,在其中我将一个浮点数的值分配给另一个浮点数。
float a = 1;
float b = 2;
b=a;
我想将“b = a”行转换为内联汇编。我写了以下内容:
asm volatile("movss %1, %%xmm0 \n"
"movss %%xmm0, %0"
:"=f"(b)
:"f"(a)
:"xmm0");
它给出了以下错误:
a.c:8:17: error: output constraint 0 must specify a single register
asm volatile("movss %1, %%xmm0 \n"
谁能帮我解决这个错误的含义以及如何调试它?
PS - 如果有人需要,请提供 CPU 架构信息。
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
谢谢
解决方案
推荐阅读
- c++ - 给定 C++ 代码的时间复杂度是多少?
- cakephp - CakePHP 只本地化部分页面
- java - Java 将 Map 内的 Map 转换为单个聚合 Map
- java - 计算一个单词在 Java Netbeans 中的 JTable 中重复了多少次
- android - Admob 横幅广告未显示
- python - 比较 2 个列表
- javascript - 从数组 _ JavaScript 中的元素组合创建新数组
- java - 我如何根据公共标识符(java)实例化不同的子类
- node.js - 应用程序负载均衡器 https 请求在端口 4000 上运行的 EC2 nodejs
- javascript - Firebase 实时数据库无法与我的 Discord 机器人一起使用