Program Control
The Hardware Stack
MOTOROLA
Optimizing DSP56300/DSP56600 Applications
3-5
The next example shows loop and subroutine nesting.
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)
Low
High
AA0833
Содержание DSP56300
Страница 49: ...3 20 Optimizing DSP56300 DSP56600 Applications MOTOROLA Program Control Using Fast Interrupts ...
Страница 95: ...7 10 Optimizing DSP56300 DSP56600 Applications MOTOROLA Compact Opcode Use Special Instructions ...
Страница 99: ...A 4 Optimizing DSP56300 DSP56600 Applications MOTOROLA Saving Power Disabling Functional Blocks ...
Страница 103: ...B 4 Optimizing DSP56300 DSP56600 Applications MOTOROLA Debug and Test Support Address Tracing ...