Hello!
Can someone help me with the following assemblercode
Code:
extern "C" long double _cdecl exp (double x)
_exp    PROC    NEAR
PUBLIC  _exp
        FLDL2E
        FLD     QWORD PTR [ESP+4]             //; x
        FMUL                                  //; z = x*log2(e)
        FIST    DWORD PTR [ESP+4]             // round(z)
        SUB     ESP, 12
        MOV     DWORD PTR [ESP], 0
        MOV     DWORD PTR [ESP+4], 80000000H
        FISUB   DWORD PTR [ESP+16]            //; z - round(z)
        MOV     EAX, [ESP+16]
        ADD     EAX,3FFFH
        MOV     [ESP+8],EAX
        JLE     SHORT UNDERFLOW
        CMP     EAX,8000H
        JGE     SHORT OVERFLOW
        F2XM1
        FLD1
        FADD                                  //; 2^(z-round(z))
        FLD     TBYTE PTR [ESP]               //; 2^(round(z))
        ADD     ESP,12
        FMUL                                  //; 2^z = e^x
        RET

UNDERFLOW: 
        FSTP    ST
        FLDZ                                  //; return 0
        ADD     ESP,12        
        RET

OVERFLOW:
        PUSH    07F800000H                    //; +infinity
        FSTP    ST
        FLD     DWORD PTR [ESP]               //; return infinity
        ADD     ESP,16
        RET

_exp    ENDP
return 0
}
I want to use this function in my c++ programm. I am using Vc++ 6.0.

Thanks in advance