assembly - 有没有办法用 xor 翻转 32 位浮点数的符号位?
问题描述
我正在尝试翻转 xmm0 内最低有效浮点数的符号位。我试图将 -0 转换为另一个 xmm 寄存器并与 xmm0 进行异或。不幸的是,尽管我的浮动值消失了,但我已经实现了翻转标志。有没有办法xorps
在 asm 中使用来翻转符号位?我还看到一些关于stackoverflow的帖子正是这样做的,但在 c 中。
# xmm0 contains 4 floats
# goal is to flip the sign of the least significant one
mov eax, -0
cvtsi2ss xmm1, eax
xorps xmm0, xmm1
解决方案
要翻转 xmm0 内最不重要的浮点数的符号位,解决方案看起来像 Jester 在我的问题的评论部分中发布的内容:
mov eax, 0x80000000
movd xmm1, eax
xorps xmm0, xmm1
(感谢 Jester 和所有帮助过我的人。我只是想将此主题标记为已完成)
推荐阅读
- php - 链接点击时调用的PHP函数没有给出任何结果
- azure-data-explorer - 如何在 Kusto 语言中注释行
- java - 根据其他元素增加和减少的计数器
- mapbox - Mapbox:印度 GPS 坐标在地图上显示错误位置
- performance - 崩溃报告“字符串 - 无法下载或检索文件”的任何线索。从 Sentry - Flutter App 获得?
- swagger - 如何使用 Swagger Codegen 生成整个 Pageable 对象,而不是其中的每个属性?
- xamarin - 如何在 PCL 中获取 xamarin.Android 值
- apache-kafka - 问题 Kafka Mirror Maker 从 1.0.2 更新到 2.2.0 - 无法构建消费者 - 没有可解析的引导 URL
- android - 不要完成 gradle build 运行
- arrays - 外部保存一个巨大 JSON 文件的特定值(一个巨大的数组) - 节点