User`s manual
Program Control
The Hardware Stack
MOTOROLA Optimizing DSP56300/DSP56600 Applications 3-5
The next example shows loop and subroutine nesting. Figure 3-1
shows the state of the stack at the time the fast interrupt is executing
(label I_IRQA, that enters execution when PC = $000529). The first
DO instruction pushes the existing data on LA and LC (0 and
$FFFFFF, respectively, in this example).
Note: A fast interrupt does not effect the stack. Only long
interrupts (that have a subroutine call) push data into the
stack. Had IRQA
been a long interrupt, another push would
have been done, the saved values being SSH:$529 (PC) and
SSL: $C18300 (SR). The different values of the LF and FV bits
in SR are saved as the nesting proceeds (no loop, finite loop,
infinite loop).
exit DO loop
immediately
BRKcc (condition true)
PC: = LA + 1;
SR: = SSL
SP: = SP – 1
LA: = SSH, LC: = SSL
SP: = SP – 1
Figure 3-1 State of the Stack When IRQA Is Serviced
Table 3-1 Implicit Stack Activity (Continued)
Activity
Triggered by Instruction or
Condition
Implicit Stack
Actions Taken
1
2
3
4
5
6
15
SP
$109 (PC)
$FFFFFF (LC)
$520 (PC)
0
$525 (PC)
$530 (LA)
$C00300 (SR)
$C00300 (SR)
$C08300 (SR)
$6 (LC)
$0 (LA)
LowHigh
AA0833