## RET = Return from routine

Hex | Mnemonic | Cycles
--- | --- | ---
F8 | RET | 16
F9 | RETI | 16
FA | RETSKIP | 16

### Execute

    F        = Register F
    U/V      = Register U or V
    SP       = Register SP (Stack Pointer)
    PC       = Register PC (Program Counter)

    ; RET (Return from a subroutine)

    V = Memory[SP+2]
    PC = (Memory[SP+1] SHL 8) + Memory[SP]
    SP = SP + 3

    ; RETI (Return from an interrupt)

    V = Memory[SP+3]
    PC = (Memory[SP+2] SHL 8) + Memory[SP+1]
    F = Memory[SP]
    SP = SP + 4

    ; RETSKIP (Return from a subroutine and skip 2 bytes)

    V = Memory[SP+2]
    PC = (Memory[SP+1] SHL 8) + Memory[SP] + 2
    SP = SP + 3

### Description

Return from a subroutine or an interrupt.

### Conditions

None

### Examples

     ; A = 0x10
     ; B = 0x10
     CALL somefunction
     ; A = 0x11
     ; B = 0x0F

     (...)

    somefunction:
     INC A
     DEC B
     RET
     INC A  ; Never executed

« Back to Instruction set

Retrieved from "http://wiki.sublab.net/index.php/PM_Opc_RET"

© 2011-2015 by JustBurn - Hardware documentation copy from Sublab by Team-Pokémé