Difference between revisions of "Code Generation/Exercise 5"

From Wiki**3

< Code Generation
(Compiling and Running)
Line 29: Line 29:
 
To compile the Postfix code directly, [[pf2asm]] can be used:
 
To compile the Postfix code directly, [[pf2asm]] can be used:
  
* pf2asm gcd.pf
+
pf2asm gcd.pf
* yasm -felf gcd.asm
+
yasm -felf gcd.asm
  
 
[[category:Compiladores]]
 
[[category:Compiladores]]
 
[[category:Ensino]]
 
[[category:Ensino]]

Revision as of 11:56, 16 February 2017

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:

<asm>

</asm>

Compiling and Running

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

pf2asm gcd.pf
yasm -felf gcd.asm