
ST72521
中央处理单元
(续)
堆栈指针( SP )
读/写
复位值: 01 FFH
15
0
7
SP7
SP6
SP5
SP4
SP3
SP2
SP1
8
0
0
0
0
0
0
1
0
SP0
堆栈指针是一个16位寄存器,它是AL-
如何指向堆栈中的下一个空闲位置。
它然后递减数据一直推后
入堆栈的数据是前递增
从堆栈中弹出(参见
图8)。
由于堆栈为256字节深, 8最显
着的位由硬件强制。下面的
MCU复位,或者复位后堆栈指针的指令
化( RSP ) ,堆栈指针包含其复位val-
UE的(在SP7至SP0的位被置位),这是在堆栈
更高的地址。
图8.堆栈操作举例
通话
子程序
@ 0100h
打断
EVENT
PUSH
堆栈指针的最显著字节
(称为S ) ,可以直接由一个LD访问IN-
梁支。
注意:
时的下限被超过,则栈
指针回到堆栈上限,与 -
出指示堆栈溢出。先前
存储的信息是那么覆盖, there-
前丢失。该协议栈也包装在一种情况下的不足
流动。
堆栈是用来保存返回地址能很好地协同
子程序调用,并且在CPU方面
一个中断。用户还可以直接操作
栈的PUSH和POP指令的方式
系统蒸发散。在中断的情况下,在PCL存储
在第一位置由SP指向。然后,
其它寄存器中存储的下一个位置作为
所示
网络连接gure 8 。
- 当接收到一个中断时,SP是递减
mented和上下文推入堆栈。
- 从中断返回时, SP加
和上下文被从堆栈中弹出。
子程序调用占据两个位置和IN-
中断五个位置中的堆栈区。
POP
IRET
RET
或者RSP
SP
SP
CC
A
X
PCH
SP
PCH
@ 01FFh单元
的PCl
的PCl
PCH
的PCl
Y
CC
A
X
PCH
的PCl
PCH
的PCl
SP
CC
A
X
PCH
的PCl
PCH
的PCl
SP
PCH
的PCl
SP
堆高地址= 01FFh单元
叠低地址= 0100H
23/211