beautypg.com

Stacks – Zilog Z8F0130 User Manual

Page 40

background image

eZ8

CPU Core

User Manual

UM012820-0810

Address Space

25

Stacks

Stack operations occur in the general-purpose registers of the Register
File. The Register Pair

FFEh

and

FFFh

form the 16-bit Stack Pointer (SP)

used for all stack operations. The Stack Pointer holds the current stack
address. The Stack Pointer must be always be set to point to a section of
the Register File that does not cause user program data to be overwritten.
Even for linear program code that does not employ the stack for Call and/
or Interrupt routines, the Stack Pointer must be set to prepare for possible
Illegal Instruction Traps.

The stack address decrements prior to a PUSH operation and increments
after a POP operation. The stack address always points to the data stored
at the top of the stack. The stack is a return stack for interrupts and CALL
and TRAP instructions. It can also be employed as a data stack.

During a CALL instruction, the contents of the Program Counter are
saved on the stack. The Program Counter is restored during execution of a
Return (RET). Interrupts and Traps (either the TRAP instruction or an
Illegal Instruction Trap) save the contents of the Program Counter and the
Flags Register on the stack. The Interrupt Return (IRET) instruction
restores them.

Figure 7

on page 26 displays the contents of the Stack and

the location of the Stack Pointer following Call, Interrupt and Trap opera-
tions.