This code

Code:
int main(int argc, char* argv[]){
 
    double Input = 1.000;
    DWORD temp;
    Start = GetTickCount();
    Stop = Start + 10000;
    temp = 0;
    while(GetTickCount() < Stop){
        __asm fld   Input
        __asm fld1
        __asm fpatan
        __asm fsin
        __asm fst   Input
 
 
        temp++;
 
        }
    printf("%d\n" , (temp/10000));
 
 
 
    return 0;
    }
Runs about 4-5 slower than this code

Code:
int main(int argc, char* argv[]){

    double Input = 1.000;
    DWORD temp;
    Start = GetTickCount();
    Stop = Start + 10000;
    temp = 0;
    while(GetTickCount() < Stop){
        Input = sin(atan(Input));            

        temp++;
        
        }
    printf("%d\n" , (temp/10000));
    
    
    
    return 0;
    }
SHouldnt the assembly run faster?