Sunday, November 28, 2010

My simple floating point arithmetic program via Assembly language using C language

#include stdio.h
#define p printf
#define s scanf

int main() {

float var1, var2, sum, diff, product, dividend;

p( "Enter two numbers : " );
s( "%f%f", &num1, &num2 );

/* Perform floating point */
__asm__ ( "fld %1;"
"fld %2;"
"fadd;"
"fstp %0;" : "=g" (sum) : "g" (num1), "g" (num2) ) ;

__asm__ ( "fld %2;"
"fld %1;"
"fsub;"
"fstp %0;" : "=g" (diff) : "g" (num1), "g" (num2) ) ;

__asm__ ( "fld %1;"
"fld %2;"
"fmul;"
"fstp %0;" : "=g" (product) : "g" (num1), "g" (num2) ) ;

__asm__ ( "fld %2;"
"fld %1;"
"fdiv;"
"fstp %0;" : "=g" (dividend) : "g" (num1), "g" (num2) ) ;

p( "%f + %f = %f\n", num1, num2, sum);
p( "%f - %f = %f\n", num1, num2, diff);
p( "%f * %f = %f\n", num1, num2, product);
p( "%f / %f = %f\n", num1, num2, dividend);

return 0 ;
}

No comments:

Post a Comment