能不能帮忙分析下面的代码,为什么它完成了从浮点数到int的转换
extern "C" void _ftol()
{
    const static int zpfp[2] = { 0xBEFFFFFF, 0x3EFFFFFF };    
    __asm 
    {
        SUB    ESP,4
        FST    DWORD PTR [ESP]
        MOV    EAX,DWORD PTR [ESP]
        SHR    EAX,29
        AND    EAX,4
        FADD DWORD PTR [zpfp+EAX]
        FISTP DWORD PTR [ESP]
        POP    EAX
        RET
    }
}