
初步
堆栈操作举例
SN8P1702A/SN8P1703A
8位微控制器内置的12位ADC
两种入栈操作引用堆栈指针( STKP )和写程序计数器的内容
( PC)压入堆栈的缓冲区是CALL指令和中断服务。根据每个条件, STKP递减
并指向下一个可用的堆栈单元。堆栈缓冲区存储有关的操作码地址程序计数器。
入栈操作如下表。
堆栈级别
0
1
2
3
4
5
6
7
>8
STKP注册
STKPB2
STKPB1
1
1
1
1
0
0
0
0
-
1
1
0
0
1
1
0
0
-
STKPB3
1
1
1
1
1
1
1
1
-
STKPB0
1
0
1
0
1
0
1
0
-
栈缓冲区
高字节低字节
STK0H
STK1H
STK2H
STK3H
STK4H
STK5H
STK6H
STK7H
-
STK0L
STK1L
STK2L
STK3L
STK4L
STK5L
STK6L
STK7L
-
描述
-
-
-
-
-
-
-
-
堆栈溢出
表3-1 。 STKP , STKnH和STKnL相对入栈操作
RETI指令是中断服务程序。 RET指令是CALL指令。当一个堆栈恢复
操作时, STKP加1并指向下一个空闲堆栈。堆栈恢复过去的
程序计数器(PC )连接到程序计数器寄存器中。堆栈恢复操作如下表。
堆栈级别
7
6
5
4
3
2
1
0
STKP注册
STKPB2
STKPB1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
STKPB3
1
1
1
1
1
1
1
1
STKPB0
0
1
0
1
0
1
0
1
栈缓冲区
高字节低字节
STK7H
STK6H
STK5H
STK4H
STK3H
STK2H
STK1H
STK0H
STK7L
STK6L
STK5L
STK4L
STK3L
STK2L
STK1L
STK0L
描述
-
-
-
-
-
-
-
-
表3-2 。 STKP , STKnH和STKnL相对堆栈恢复操作
松翰科技股份有限公司
第31页
修订版0.5