92. RET – Return from Subroutine
92.1. Description
Returns from subroutine. The return address is loaded from the STACK. The Stack Pointer uses a pre-
increment scheme during RET.
Operation:
Operation: Comment:
(i) PC(15:0) ← STACK Devices with 16-bit PC, 128KB Program memory maximum.
(ii) PC(21:0) ← STACK Devices with 22-bit PC, 8MB Program memory maximum.
Syntax: Operands: Program Counter: Stack:
(i) RET None See Operation SP ← SP + 2, (2 bytes,
16 bits)
(ii) RET None See Operation SP ← SP + 3, (3 bytes,
22 bits)
16-bit Opcode:
1001 0101 0000 1000
92.2. Status Register (SREG) and Boolean Formula
I T H S V N Z C
– – – – – – – –
Example:
call routine ; Call subroutine
...
routine: push r14 ; Save r14 on the Stack
...
pop r14 ; Restore r14
ret ; Return from subroutine
Words 1 (2 bytes)
Cycles 4 devices with 16-bit PC
5 devices with 22-bit PC
Atmel AVR Instruction Set Manual [OTHER]
Atmel-0856L-AVR-Instruction-Set-Manual_Other-11/2016
139