
Central Processor Unit (CPU)
CPU Registers
M68HC11E Family — Rev. 5
Data Sheet
MOTOROLA
Central Processor Unit (CPU)
For More Information On This Product,
  Go to: www.freescale.com
75
4.2.2  Index Register X (IX) 
The IX register provides a 16-bit indexing value that can be added to the 8-bit offset 
provided in an instruction to create an effective address. The IX register can also 
be used as a counter or as a temporary storage register. 
4.2.3  Index Register Y (IY) 
The 16-bit IY register performs an indexed mode function similar to that of the IX 
register. However, most instructions using the IY register require an extra byte of 
machine code and an extra cycle of execution time because of the way the opcode 
map is implemented. Refer to 
4.4 Opcodes and Operands
 for further information. 
4.2.4  Stack Pointer (SP) 
The M68HC11 CPU has an automatic program stack. This stack can be located 
anywhere in the address space and can be any size up to the amount of memory 
available in the system. Normally, the SP is initialized by one of the first instructions 
in an application program. The stack is configured as a data structure that grows 
downward from high memory to low memory. Each time a new byte is pushed onto 
the stack, the SP is decremented. Each time a byte is pulled from the stack, the SP 
is incremented. At any given time, the SP holds the 16-bit address of the next free 
location in the stack. 
Figure 4-2
 is a summary of SP operations. 
When a subroutine is called by a jump-to-subroutine (JSR) or branch-to- 
subroutine (BSR) instruction, the address of the instruction after the JSR or BSR 
is automatically pushed onto the stack, least significant byte first. When the 
subroutine is finished, a return-from-subroutine (RTS) instruction is executed. The 
RTS pulls the previously stacked return address from the stack and loads it into the 
program counter. Execution then continues at this recovered return address. 
When an interrupt is recognized, the current instruction finishes normally, the 
return address (the current value in the program counter) is pushed onto the stack, 
all of the CPU registers are pushed onto the stack, and execution continues at the 
address specified by the vector for the interrupt. 
At the end of the interrupt service routine, an return-from interrupt (RTI) instruction 
is executed. The RTI instruction causes the saved registers to be pulled off the 
stack in reverse order. Program execution resumes at the return address. 
Certain instructions push and pull the A and B accumulators and the X and Y index 
registers and are often used to preserve program context. For example, pushing 
accumulator A onto the stack when entering a subroutine that uses accumulator A 
and then pulling accumulator A off the stack just before leaving the subroutine 
ensures that the contents of a register will be the same after returning from the 
subroutine as it was before starting the subroutine. 
F
Freescale Semiconductor, Inc.
n
.