|
|
Line 1: |
Line 1: |
| == The Original Code ==
| | #REDIRECT [[ist:Code Generation/Exercise 5]] |
| | |
| 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:
| |
| {{CollapsedCode|Postfix code|
| |
| <asm>
| |
| | |
| </asm>
| |
| }}
| |
| | |
| == Compiling and Running ==
| |
| | |
| To compile the Postfix code directly, [[pf2asm]] can be used:
| |
| | |
| pf2asm gcd.pf
| |
| yasm -felf gcd.asm
| |
| | |
| [[category:Compiladores]]
| |
| [[category:Ensino]]
| |