问题标签 [x87]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
654 浏览

sse - 流式 SIMD 扩展是否取代了 x87 指令集?

我知道 SSE 是 x87 浮点指令的替代方案,但是 x87 FPU 是否仍然在 Ivy-Bridge 或 Haswell 等现代 CPU 中实现?

SSE 是否取代了 x87 指令集?

0 投票
1 回答
488 浏览

c++ - SSE FPU 并行

我想知道是否可以将 SSE 与 x87 并行使用。所以考虑下面的伪代码,

1:sse_insn 2:x87_insn

假设它们可以并行执行,管道是否会并行执行 1 和 2?

0 投票
2 回答
11870 浏览

c++ - FLD 浮点指令

根据 http://cs.smith.edu/~thiebaut/ArtOfAssembly/CH14/CH14-4.html#HEADING4-5

14.4.4.1 FLD 指令
fld mem_32
fld mem_64[bx]

我的目标是将常数 10 存储到我的 fPU 堆栈中。为什么我不能这样做?

0 投票
1 回答
216 浏览

assembly - 什么是 SSE 相当于 fstp?

如果我弄错了,请纠正我,但是 fstp 从 FPU 堆栈顶部弹出值,例如 st0?

即 fstp 第二 [rsp]

如果我在 SSE 寄存器 xmm0 中有值,那么等效值是多少?我想打印存储在寄存器中的值。

0 投票
0 回答
253 浏览

windows - 如何解释 FLOATING_SAVE_AREA::RegisterArea 字段?

CONTEXT通过调用得到了一个结构GetThreadContext。它有一个FloatSave字段,其中包含 FPU 状态。

RegisterArea字段长 80 个字节,它存储寄存器的内容。

如何解释这个数组中的字节?

是否只是 ST(0)、ST(1) 等彼此相邻?或者它只是 FPU 寄存器区域的原始转储?(在这种情况下,我需要从状态字中读出 TOS 并使用它来获取 ST(n)。)

0 投票
3 回答
702 浏览

floating-point - x87 FPU 指令是确定性的吗?

我们正在编写一个仿真器,并且想知道对于给定的 FPU 状态,在运行 FPU 指令后,FPU 的状态是确定性的,例如。FDIV?

有许多实现 x87 指令集的 Intel 兼容 CPU 架构。在测试 FPU 仿真的正确性时,我们是否应该依赖最终的 CPU 状态?

不同的实现是否以不同的方式循环/计算?

0 投票
4 回答
2731 浏览

assembly - 释放 x87 FPU 堆栈 (ia32)

在我的大学里,我们刚刚被介绍到 IA32 x87 FPU。但是我们没有被告知如何清除 FPU-Stack 中不再需要的元素。

假设我们正在执行一个简单的计算,例如 (5.6 * 2.4) + (3.9 * 10.3)。

问题是:在弹出保存计算结果的 FPU 顶部元素之后。如何从现在剩余的新顶部元素中释放 FPU 的堆栈,该元素包含 (5.6*2.4) 的结果。

我能想象的唯一方法是释放更多的程序堆栈并从 FPU 的堆栈中弹出元素,直到删除所有不再需要的元素。

有没有办法直接操作顶部指针?

0 投票
1 回答
2769 浏览

assembly - 指令的操作数大小无效

所以我试图用浮点数完成我的平均程序,但我得到一个无效的操作数大小。我不明白我做错了什么。

0 投票
2 回答
852 浏览

c++ - 如何在 VS c++ 中使用 IA32 指令“fabs”?

这是我第一次尝试使用汇编,我只是尝试使用英特尔架构指令FABS。(参考本文档第 399 页)。

这只是应该清除符号位。

我对汇编知之甚少,涉及来源和目的地,但我没有看到对该指令符号的任何引用。

以下是我使用它的尝试之一(使用 Visual Studio 2012,C++):


这种特殊的尝试给出了错误 C2400: inline assembler syntax error in 'opcode'; 成立 '('


请注意,我想使用汇编指令,并且对可用的其他/“更好”选项不感兴趣。

0 投票
1 回答
4886 浏览

assembly - FILD 和 FSTP 指令

正在做一个crackme,试图写一个keygen,我对一些FPU指令感到困惑。

我想知道它是如何在弹出时将 4275451536.0000000000 转换为 D2000000 的?