
Central Processor Unit (CPU)
CPU Registers
MC68HC11E Family
—
Rev. 4
Technical Data
MOTOROLA
Central Processor Unit (CPU)
49
Figure 3-2. Stacking 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.
SP
–
2
SP
–
1
STACK
RTN
H
RTN
L
SP
7
0
PC
MAIN PROGRAM
$9D = JSR
dd
NEXT MAIN INSTR.
J SR, JUMP TO SUBROUTINE
RTN
DIRECT
PC
MAIN PROGRAM
$AD = JSR
ff
NEXT MAIN INSTR.
RTN
INDEXED, X
PC
MAIN PROGRAM
$18 = PRE
$AD = JSR
ff
NEXT MAIN INSTR.
RTN
INDEXED, Y
PC
MAIN PROGRAM
$BD = PRE
hh
ll
NEXT MAIN INSTR.
RTN
INDEXED, Y
SP
STACK
CCR
ACCB
ACCA
IX
H
IX
L
IY
H
IY
L
RTN
H
RTN
L
SP+1
SP+2
SP+3
SP+4
SP+5
SP+6
SP+7
SP+8
SP+9
7
0
PC
INTERRUPT ROUTINE
$3B = RTI
SP
–
9
SP
–
8
SP
–
7
SP
–
6
SP
–
5
SP
–
4
SP
–
3
SP
–
2
SP
–
1
STACK
CCR
ACCB
ACCA
IX
H
IX
L
IY
H
IY
L
RTN
H
RTN
L
SP
7
0
PC
MAIN PROGRAM
$3F = SWI
PC
MAIN PROGRAM
$3E = WAI
SWI, SOFTWARE INTERRUPT
WAI, WAIT FOR INTERRUPT
RTI, RETURN FROM INTERRUPT
SP
–
2
SP
–
1
STACK
RTN
H
RTN
L
SP
7
0
PC
MAIN PROGRAM
$8D = BSR
PC
MAIN PROGRAM
$39 = RTS
BSR, BRANCH TO SUBROUTINE
RTS, RETURN FROM
SUBROUTINE
SP
STACK
RTN
H
RTN
L
SP+1
SP+2
7
0
LEGEND:
RTN = ADDRESS OF NEXT INSTRUCTION IN MAIN PROGRAMTO
BE EXECUTED UPON RETURN FROM SUBROUTINE
RTN
H
= MOST SIGNIFICANT BYTE OF RETURN ADDRESS
RTN
L
= LEAST SIGNIFICANT BYTE OF RETURN ADDRESS
= STACK POINTER POSITION AFTER OPERATION IS COMPLETE
dd = 8-BIT DIRECT ADDRESS ($0000
–
$00FF) (HIGH BYTE ASSUMED
TO BE $00)
ff = 8-BIT POSITIVE OFFSET $00 (0) TO $FF (255) IS ADDED TO INDEX
hh = HIGH-ORDER BYTE OF 16-BIT EXTENDED ADDRESS
ll = LOW-ORDER BYTE OF 16-BIT EXTENDED ADDRESS
rr= SIGNED RELATIVE OFFSET $80 (
–
128) TO $7F (+127) (OFFSET
RELATIVE TO THE ADDRESS FOLLOWING THE MACHINE CODE
OFFSET BYTE)