22/08/2003
Copyright Teemu Kerola 2003
Aliohjelma-
esimerkki (11)
int fA (int x, y)
{
int
z = 5;
z
= x * z + y;
return
(z);
}
…
T = fA (200, R);
aliohjelman toteutus:
retfA EQU -4 #
params
parX EQU -3
parY EQU
-2
locZ EQU 1 #
local vars
fA
PUSH SP, =0 ; alloc Z
PUSH SP, R1 ; save R1
LOAD R1,=5; init Z
STORE
R1, locZ (FP)
LOAD
R1, parX (FP)
MUL R1, locZ (FP)
ADD R1, parY (FP)
STORE
R1, locZ (FP)
STORE
R1, retfA (FP)
POP SP, R1; recover R1
SUB SP, =1 ; free Z
EXIT SP, =2 ; 2 param.
prolog
epilog
vanha FP
vanha PC
param x
param y
paluuarvo
FP
vanha R1
SP
Kaikki
viitteet
näihin
tehdään
suhteessa
FP:hen