Code Generation/Exercise 5: Difference between revisions

From Wiki**3

< Code Generation
No edit summary
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 09: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