14
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
paik. z
param x
param y
paluuarvo
FP
vanha R1
SP
Kaikki viitteet
näihin tehdään
suhteessa FP:hen
ks. fA.k91