SAM47 INSTRUCTION SETKS57C2308/P2308/C2316/P2316

SRET — Return From Subroutine and Skip

SRET

 

 

 

 

 

 

 

 

 

Operation:

Operand

Operation Summary

Bytes

Cycles

 

 

 

 

 

 

Return from subroutine and skip

1

3 + S

 

 

 

 

 

Description: SRET is normally used to return to the previously executing procedure at the end of a subroutine that was initiated by a CALL or CALLS instruction. SRET skips the resulting address, which is generally the instruction immediately after the point at which the subroutine was called. Then, program execution continues from the resulting address and the contents of the location addressed by the stack pointer are popped into the program counter.

Operand

 

 

Binary Code

 

 

Operation Notation

 

 

 

 

 

 

 

 

 

 

1

1

1

0

0

1

0

1

PC13–8 (SP + 1) (SP)

 

 

 

 

 

 

 

 

 

PC7–0 (SP + 3) (SP + 2)

 

 

 

 

 

 

 

 

 

EMB,ERB (SP + 4)

 

 

 

 

 

 

 

 

 

SP SP + 6

 

 

 

 

 

 

 

 

 

 

Example: If the stack pointer contains the value 0FAH and RAM locations 0FAH, 0FBH, 0FCH, and 0FDH contain the values 1H, 0H, 5H, and 2H, respectively, the instruction

SRET

leaves the stack pointer with the value 00H and the program returns to continue execution at location 0125H, then skips unconditionally.

During a return from subroutine, data is popped from the stack to the PC as follows:

SP (0FAH)

 

PC11–PC8

 

 

 

 

 

 

SP + 1 (0FBH)

0

0

PC13

PC12

 

 

 

 

 

SP + 2(0FCH)

 

PC3–PC0

 

 

 

 

 

SP + 3(0FDH)

 

PC7–PC4

 

 

 

 

 

 

SP + 4(0FEH)

0

0

EMB

ERB

 

 

 

 

 

SP + 5(0FFH)

0

0

0

0

SP + 6(00H)

 

 

 

 

 

 

 

 

 

 

 

 

 

5-86

Page 160
Image 160
Samsung KS57C2308 manual Sret Return From Subroutine and Skip