English
Language : 

GMS30C2116 Datasheet, PDF (42/322 Pages) Hynix Semiconductor – USERS MANUAL
1-22
1.7 Stack (continued)
CHAPTER 1
Return from B
Call B
PC := ret. PC for B;
PC := branch address;
SR := ret. SR for B;
ret. PC for B := old PC;
-- returns preceding stack frame ret. SR for B := old SR;
if stack frame contained
FP := FP + reg.code
in local registers then
of ret. PC;
next instruction;
FL := 6;
else
-- reg.code of ret. PC = 9
pull contents of differential words
from memory part of the stack;
Frame in B
FP := FP - code of source reg.;
FL := code of dest.reg.;
if available registers ≥
(required + 10) registers then
next instruction
else
push contents of
differential number of
registers to memory
part of stack;
-- code of source reg. = 2
-- code of dest.reg. = 11
parameters L0
Frame
for
L1
Pointer frame A L2
(FP)
ret. PC for A L3
ret. SR for A L4
L5
reserved L6
for
L7
maximum L8
number of L9
variables L10
in frame A L11
L12
L13
FP+FL
L14
L15
current
length
of
frame A
FL = 13
New
FP
must not
be used
parameters
for
frame A
ret. PC for A
ret. SR for A
parameters
for frame B
ret. PC for B L0
ret. SR for B L1
reserved for L2
max. number L3
of variables L4
in frame B L5
FP+FL
New
FP
current
length
of
frame B
FL = 6
parameters
for
frame A
ret. PC for A
ret. SR for A
parameters L0
for frame B L1
ret. PC for B L2
ret. SR for B L3
L4
reserved L5
for
L6
maximum L7
number of L8
variables L9
in frame B L10
current
length
of
frame B
FL = 11
FP+FL
before Call B and
after Return
after CALL L9, 0, dest;
after FRAME L11, L2
Figure 1.13: Stack frame handling (register part)