AT& T组件FPU,1除以X(arg)

时间:2017-05-22 19:59:25

标签: assembly att fpu

我正在尝试在AT& T程序集中实现函数,它将返回1除以X的结果,其中X是double类型的param,从C传递给函数(完整程序用于计算1的积分)特定范围的/ x函数[基于矩形的积分])我对cosinus函数没有任何问题。 对于这种情况,问题是当我想要将此函数与大于6的矩形的数量集成时,积分的结果总是为-nan,当我使用低于或等于6时,结果是合理的但不够准确。 参数类似于范围开始和范围结束,矩形计数(积分精度)从命令行 - argv表传递。这是函数的汇编代码(AT& T语法)。

.data
result:
    .double 0.0

.globl onebyx
.type onebyx, @function

onebyx:
    pushl %ebp
    movl %esp, %ebp

    FLDL 8(%ebp) # loading function arg
    FLD1    # loading constant 1 

    # should be: ST0 - 1; ST1 - function arg

    FDIVP %ST(1)  # dividing 1 by function arg

    fstl result

    movl %ebp, %esp
    popl %ebp
    ret 

0 个答案:

没有答案