Code Generation/Exercise 5

From Wiki**3

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The Original Code

Consider the following C function:

<c> int gcd(int a, int b) {

 static int temp = 0;
 if (temp) temp = swap(&a, &b);
 while (1) {
   a %= b;
   if (a == 0) break;
   b %= a;
   if (b == 0) return a;
 }
 return b;

} </c>

Postfix Code

The Postfix code for the above function is as follows:

Postfix code

<asm>

</asm>

Compiling and Running

To compile the Postfix code directly, pf2asm can be used:

pf2asm gcd.pf
yasm -felf gcd.asm