Hello
I have been thinking if I can use asm in c programs to enhance my time...
So to give it a try i tried http://www.spoj.pl/problems/STREETR/
with the following code:
#include<stdio.h>
int gcd( int a, int b ) {
    int result ;

    __asm__ __volatile__ ( "movl %1, %%eax;"
                          "movl %2, %%ebx;"
                          "CONT1D: cmpl $0, %%ebx;"
                          "je D1ONE;"
                          "xorl %%edx, %%edx;"
                          "idivl %%ebx;"
                          "movl %%ebx, %%eax;"
                          "movl %%edx, %%ebx;"
                          "jmp CONT1D;"
                          "D1ONE: movl %%eax, %0;" : "=g" (result) : "g"
(a), "g" (b)
    );

    return result ;
}


int main()
{
   int n,i,min,ans=0;
   scanf("%d",&n);
   int arr[n],ard[n];
   ard[0]=1;
   if(n>0)
   scanf("%d",&arr[0]);
   for(i=1;i<n;i++)
   {
                   scanf("%d",&arr[i]);
                   ard[i]=arr[i]-arr[i-1];
                   if(i==1)
                   min=ard[i];
                   else
                   min=gcd(min,ard[i]);

   }
   for(i=1;i<n;i++)
   {
                   ans+=((ard[i]/min)-1);
   }
   printf("%d",ans);
return 0;

}



Its according to the i386 arch. it ran fine on my computer but giving
complilation error in SPOJ judge.....
I am yet a novice with asm's so dont know if I made sense at all.But please
do help with this,

-- 
Saurabh Singh
B.Tech (Computer Science)
MNNIT ALLAHABAD

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to