SN8P1600
8-bit micro-controller
STACK REGISTERS
The stack pointer (STKP) is a 3-bit register to store the address used to access the stack buffer, 10-bit data memory
(STKnH and STKnL) set aside for temporary storage of stack addresses.
The two stack operations are writing to the top of the stack and reading from the top of stack. Push operation
decrements the STKP and the pop operation increments each time. That makes the STKP always point to the top
address of stack buffer and write the last program counter value (PC) into the stack buffer.
The program counter (PC) value is stored in the stack buffer before a CALL instruction executed or during interrupt
service routine. Stack operation is a LIFO type (Last in and first out). The stack pointer (STKP) and stack buffer
(STKnH and STKnL) are located in the system register area bank 0.
0DFH
STKP
Read/Write
After reset
Bit 7
GIE
R/W
0
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
STKPB2
R/W
Bit 1
STKPB1
R/W
Bit 0
STKPB0
R/W
-
-
-
-
-
-
-
-
-
-
-
-
1
1
1
STKPBn: Stack pointer. (n = 0 ~ 2)
GIE: Global interrupt control bit. 0 = disable, 1 = enable. There is more on this in interrupt chapter.
ꢃ
Example: Stack pointer (STKP) reset routine.
MOV
B0MOV
A, #00000111B
STKP, A
STKn = <STKnH , STKnL> (n = 3 ~ 0)
ꢂ
SN8P1602/1603
0F0H~0FFH
STKnH
Read/Write
After reset
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
SnPC9
R/W
0
Bit 0
SnPC8
R/W
0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
ꢂ
SN8P1604
0F0H~0FFH
STKnH
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
SnPC11
R/W
Bit 2
SnPC10
R/W
Bit 1
SnPC9
R/W
0
Bit 0
SnPC8
R/W
0
-
-
-
-
-
-
-
-
-
-
-
-
Read/Write
After reset
0
0
ꢂ
SN8P1602/1603/1604
0F0H~0FFH
STKnL
Read/Write
After reset
Bit 7
SnPC7
R/W
0
Bit 6
SnPC6
R/W
0
Bit 5
SnPC5
R/W
0
Bit 4
SnPC4
R/W
0
Bit 3
SnPC3
R/W
0
Bit 2
SnPC2
R/W
0
Bit 1
SnPC1
R/W
0
Bit 0
SnPC0
R/W
0
STKnH: Store PCH data as interrupt or call executing. The n expressed 0 ~3.
STKnL: Store PCL data as interrupt or call executing. The n expressed 0 ~3.
SONiX TECHNOLOGY CO., LTD
Page 30
Revision 1.94