x87

    0热度

    1回答

    我在读this,我注意到他们的例子显示fld加载值到不同的位置(st0,st1,然后回到st0),而没有指定加载到哪里。我假设fild以类似的方式工作,因为它只是加载整数的手段(或者这是我的理解),但我可能是错的。所以我的问题是这样的:fld在哪里,更具体地说是fild加载值?有没有一个参数来指定要使用哪个fpu寄存器,还是只是循环使用8,还是有一些完全不同的方式,我错过了? 我特别使用的代码试图

    2热度

    1回答

    我正在处理一个分配,我必须将C代码片段转换为内联汇编。该代码是呈现Julia分形的程序的一部分。 我已经测试了两个代码片段的输出,并且它们完全匹配,但是我的程序仍然输出不同的图像(适用于C代码的Julia分形,内联汇编代码的扁平粉色屏幕)。 这是函数的开始部分以及返回 COLORREF render_point(const double &a, const double &b,

    2热度

    1回答

    这个例子是写在NASM: section .bss var28: resb 28 section .text _main: ; Initialize finit fldpi ; Read Tag Word fstenv [var28] mov ax, [var28 + 8] ; move t

    3热度

    1回答

    section .data qVar1: dq 1 section .bss var28: resb 28 section .text _main: ; Use an MMX instruction movq mm0, [qVar1] ; Move quadword from r/m64 to mm. ; Rea

    1热度

    1回答

    我有一对存储在eax和ecx中的32位浮点数。我可以直接将它们加载到FPU中进行操作,而不必先存储到内存中?这会显着简化一些编译器代码,但fld似乎只能在内存上运行。

    5热度

    4回答

    当我使用CreateProcessAsUser在C#中由服务 我的服务需要等待进程退出启动一个进程,但我不知道我能做到这一点退出, 我不想使用检查进程列表中的进程existion

    0热度

    1回答

    我在读关于数学协处理器(Paul Carters PC Assembly Book)及其指令以进行浮点计算(在ASM i386上)。然后,我跑到下面的代码应该返回两个给定double值的大双(C调用公约): 1 %define d1 ebp+8 2 %define d2 ebp+16 3 global dmax 4 5 segment .text 6 dmax: 7 enter 0

    0热度

    1回答

    当Intel首次设计8087时,他们为什么选择将浮点寄存器组织为堆栈?从这样的设计中可以获得什么样的优势?与允许任意寄存器用作源操作数和目标操作数相比,它看起来更不灵活和难以操作。

    4热度

    1回答

    我们的课程练习要求我们在GNU汇编中创建delta = b2-4ac函数,并从C中访问它。由于这是一门关于编译器的课程,而不是汇编,所以教授选择只展示整数功能,并期望一个整数函数。 但是,我希望个人学习稍微超出责任范围,创建一个返回浮点而不是整数的可用函数。 我想出了这个C(dont't介意全局,下一个练习的目的是有参数的适当功能): # include <stdio.h> extern fl

    3热度

    1回答

    我试图弄清楚在C中的某些代码中使用浮点数是否足够满足我的需求,但是在搜索之后并没有真正理解如何将精度转换为实际数字,我决定为我的测试用例写一点代码,看看结果如何。 漂浮看起来足够精确,但我非常惊讶,漂浮物在我的17 4700hq haswell处理器(windows 8.1 x64,C,MSVS v120)上运行时间延长了大约70%。我会预计运行时间会相似或浮动速度更快。但显然不是。所以我关掉了所