x87

    8热度

    4回答

    考虑下面的代码: // Filename fputest.cpp #include <cmath> #include <cstdio> int main() { double x; *(__int64 *) &x = 0xc01448ec3aaa278di64; // -5.0712136427263319 double sine1 = sin(x);

    2热度

    1回答

    我有一个复杂的C和C++代码,数学计算繁重。我使用英特尔C++ - 最新的更新来编译。我使用optimizatons,应用程序不会给出预期的答案。很长一段时间后,我设法减少问题得到EXCEPTION_FLT_STACK_CHECK 0xc0000092。如果我没有优化编译 - 程序按预期工作。 它是在Winxp64单线程代码(该应用程序是32位)。 MSVC 2010与调试或发布版本相同的结果。

    0热度

    1回答

    我在循环中有一些在asm中的计算,它必须在sum之前是3,但循环工作无时无刻,并且永不结束。这里是mu代码: int main() { float Sum=0; int i=0; int A=5; int B=180; int C=3; _asm{ finit m1:inc i fldpi fimul A

    0热度

    2回答

    我在搜索关于可以将多少个值视为当前fpu状态(我指的是浮点代码计算所依赖的值)的一部分的信息我知道它将是3种精确模式,四种舍入模式,与fpu异常相关的大约5位标志,但还有其他什么? TNX

    2热度

    1回答

    如何将1或2添加到寄存器xmm0(double)? 我能做到这样,但肯定必须有一个更简单的方法: movsd xmm0, [ecx] xor eax, eax inc eax cvtsi2sd xmm1, eax addsd xmm0, xmm1 movsd [ecx], xmm0 也才有可能与浮点指令的x87做到这一点? 这并没有为我工作: fld dword ptr

    1热度

    1回答

    我无法理解这个事情:这样的命令(FFREE,FDECSTP)有什么用? 它可以用来弹出fpu堆栈中的值,还是用于其他目的? 我不明白:/可能有人解释说,TNX

    0热度

    1回答

    我有一个程序,只要用户输入Y(是),我就会循环。然后用户输入long float类型的数据。我还有一个计数器r14,每次输入一个长浮点数就会计数。循环结束后,我想计算平均值。如果我这样做: fld tword [r14] 并显示它,虐待得到分段错误。我也尝试了一些其他的东西,但它总是给我一个seg。尝试分割和显示后发生故障。我认为问题在于r14是一个整数,我不能像这样将它放入FPU堆栈并划分。

    1热度

    2回答

    喂,我正在学习的x86 FPU组装,我已经 有一个简单的问题,我无法找到答案: 如何值从ST(0)(FPU的 堆栈的顶部),以EAX动? 也: 是此代码正确: ; multiply (dot) two vectors of 3 floats passed by pointers as arg 1 arg 2 ; passings are ok I think, but not sure if m

    1热度

    1回答

    我是编程汇编的初学者。我想在图形模式下绘制f(x)= x * sin(1/x)曲线。 我可以画f(x)= sin(x)曲线,但我无法绘制f(x)= x * sin(1/x)。我怎么能这样做? 下面你可以看到我的工作f(x)= sin(x)代码。它的工作,完美绘制正弦曲线: org 100h mov al,13h int 10h xor bx,bx

    3热度

    2回答

    Intel® 64 and IA-32 Architectures Optimization Reference Manual列出了各种CPU指令的延迟和吞吐量数字。 对于超越函数(FSIN等),一些数字被列为范围(第C-29页)。脚注4解释: 超时指令的延迟和吞吐量在动态执行环境中可能有很大差异。这些说明只给出一个近似值或一系列值。 我的问题是:什么因素影响这些指令的吞吐量和延迟?我认为论证的价