English
Language : 

IA88C00 Datasheet, PDF (22/80 Pages) InnovASIC, Inc – Microcontroller
IA88C00
Microcontroller
Data Sheet
As of Production Version -01
The Stack Pointer always points to data stored on the tip of the stack. The address is decremented prior to
a PUSH and incremented after a POP.
The stack is also used as a return stack for CALLS and interrupts. During a CALL, the contents of the PC
are saved on the stack to be restored later. Interrupts cause the contents of the PC and FLAGS to be saved
on the stack for recovery by IRET when the interrupt is finished.
When configured for internal stack (using the register file), R217 contains the Stack Pointer. R216 can be
used as a general purpose register. However, its contents will be changed if an overflow or underflow
occurs as the result of incrementing or decrementing the stack address during normal stack operations.
A user-defined stack can be implemented in both the register file and program or data memory. These can
be made to increment or decrement on a push by the choice of opcodes. For example, to implement a
stack that goes from Low addresses to High addresses in the register file, use PUSHUI and POPUD. For a
stack that goes from High address to Low addresses in data memory, use LDEI for POP and LDEPD for
PUSH.
Figure 14. R217 (D9) SPL Stack Pointer
Bit
7
6
5
4
3
2
1
0
SP7 SP6
SP5
SP4
SP3
SP2
SP1
SP0
Initial Value
Read/Write R/W R/W
R/W
R/W
R/W
R/W
R/W
R/W
Stack operations are supported in the register file or in data memory. Bit 1 in the external Memory Timing
register (R254B0) selects between the two.
Register pair R216-R217 forms the Stack Pointer used for all stack operations. R216 is the MSB and
R217 is the LSB.
The Stack Pointer always points to data stored on the tip of the stack. The address is decremented prior to
a PUSH and incrementd after a POP.
The Stack is also used as a return stack for CALLS and interrupts. During a CALL, the contents of the PC
are saved on the stack to be restored later. Interrupts cause the contents of the PC and FLAGS to be saved
on the stack for recovery by IRET when the interrupt is finished.
When configured for internal stack (using the register file), R217 contains the Stack Pointer. R216 can be
used as a general purpose register. However, its contents will be changed if an overflow or underflow
occurs as the result of incrementing or decrementing the stack address during normal stack operations.
Copyright © 2005
Innovasic.com
Innovasic Semiconductor
ENG 21 0 050519-00
www.Innovasic
Page 22 of 80
1.888.824.4184