SN8P1829
8-Bit MCU build-in 12-bit ADC + PGIA + Charge-pump Reg 128 dots LCD driver
SONiX TECHNOLOGY CO., LTD
Page 29
Version 1.0
STACK REGISTERS
The stack pointer (STKP) is a 4-bit register to store the address used to access the stack buffer, 12-bits data memory
(STK
N
H and STK
N
L) set aside for temporary storage of stack addresses.
The two stack operations write to the top of the stack (Stack-Save) and read (Stack-Restore) from the top of stack.
Stack-Save operation decreases the STKP and the Stack-Restore operation increases one each time. That makes the
STKP always points to the top address of stack buffer and writes 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
(STK
N
H and STK
N
L) are located in the bank 0.
STKP (stack pointer) initial value = 0xxx 1111
0DFH
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
STKP
GIE
- - -
STKPB3
STKPB2
STKPB1
STKPB0
R/W
- - -
R/W
R/W
R/W
R/W
STKPB
N
: Stack pointer. (n = 0 ~ 3)
GIE: Global interrupt control bit. 0 = disable, 1 = enable. More detail information is in interrupt chapter.
Example: Stack pointer (STKP) reset routine.
MOV
A,
#00001111B
B0MOV
STKP,
A
STK
N
(stack buffer) initial value = XXXX XXXX XXXX XXXX, STK
N
= STK
N
H + STK
N
L (n = 7 ~ 0)
0F0H~0FFH
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
STK
N
H
- - -
SnPC12
SnPC11
SnPC10
SnPC9
SnPC8
- -
R/W
R/W
R/W R/W R/W R/W
0F0H~0FFH
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
STK
N
L
SnPC7 SnPC6 SnPC5 SnPC4 SnPC3 SnPC2 SnPC1 SnPC0
R/W R/W R/W R/W R/W R/W R/W R/W
STK
N
H: Store PCH data as interrupt or call executing. The n expressed 0 ~7.
STK
N
L: Store PCL data as interrupt or call executing. The n expressed 0 ~7.