x87

    8热度

    4回答

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

    0热度

    2回答

    我正在使用C#中的.NET 3.5应用程序,它定期调用一些传统的C++代码。我注意到,当将鼠标悬停在具有下拉列表的Infragistics UltraGrid上时,调用C++有时会导致“溢出或下溢算术操作”。我发现,在C++代码执行以下操作时,这只是发生: Word SavedWord = Default8087CW; Set8087CW(0x133f); // Disable all fpu

    3热度

    2回答

    我创建了一个应用程序来计算64位范围内的素数,所以当我试图使用sqrt函数从math.h计算64位数的平方根时我发现答案并不准确例如,当输入为~0ull答案应该是~0u但一个我得到的是0x100000000这是不正确的,所以我决定创建我自己的版本使用汇编x86的语言,看看这是一个错误,这是我的功能: inline unsigned prime_isqrt(unsigned long long va

    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

    2热度

    1回答

    英特尔指令集参考权利要求书(重点煤矿): 的签名整数源操作数转换成双 扩展精度浮点的格式和推压值到 FPU寄存器堆栈。源操作数可以是一个字,双字, 或四字整数。它在没有舍入错误的情况下加载。源操作数的符号 被保留。该指令的操作是在非64位模式和64位模式下相同的 。 在这里你可以看到我的测试用例: % cat stackoverflow.c float uint2float(unsigned

    0热度

    2回答

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

    1热度

    1回答

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

    3热度

    1回答

    我想调试我在此处发布的问题: C++ and pin tool -- very weird DOUBLE variable issue with IF statement。 我追踪了使用gdb发生奇怪行为的时刻。下图显示了我发现的内容,它显示了显示反汇编代码和浮点指针寄存器值的gdb屏幕截图。 (放大图像here) 左侧的图像显示在突出显示的FLDZ指令执行之前的屏幕截图,右侧图像在指令执行之后。

    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热度

    2回答

    我有一个巨大的问题,使用fdiv !!!!我试图划分1/3所以这是我做的 .model small .stack 100h .data var1 dd 1 var2 dd 3 var3 dd 2 resultado dt 0.0 .code mov ax,@data mov ds,ax finit fild var1 fild var2 fdiv fstp res