(→Código Postfix (não optimizado)) |
(→Código Postfix (não optimizado)) |
||
Line 75: | Line 75: | ||
MUL | MUL | ||
ADD ; &v[i] | ADD ; &v[i] | ||
− | + | LDDOUBLE ; v[i] | |
+ | |||
DADD | DADD | ||
DUP64 | DUP64 |
Considere o seguinte código C++ (assuma que ponteiros e int ocupam 32 bits e que double ocupa 64 bits).
static double mop(double v[], int s) {
int p = 0;
double m = 0;
for (int i = 0; i < s; ++i) {
if (v[i] > 0) {
m = m + v[i];
++p;
}
}
return p ? m / p : 0;
}
O código Postfix correspondente ao código C++ é o seguinte (agradece-se a comunicação de questões relativas a este código).
[Expand] Código Postfix |
---|
Para compilar o código Postfix directamente, pode ser utilizada a ferramenta pf2asm (assumindo uma arquitectura de 32 bits):
pf2asm code.pf yasm -felf32 code.asm