55. EICALL – Extended Indirect Call to Subroutine
55.1. Description
Indirect call of a subroutine pointed to by the Z (16 bits) Pointer Register in the Register File and the EIND
Register in the I/O space. This instruction allows for indirect calls to the entire 4M (words) Program
memory space. See also ICALL. The Stack Pointer uses a post-decrement scheme during EICALL.
This instruction is not available in all devices. Refer to the device specific instruction set summary.
Operation:
(i) PC(15:0) ← Z(15:0)
PC(21:16) ← EIND
Syntax: Operands: Program Counter: Stack:
(i) EICALL None See Operation STACK ← PC + 1
SP ← SP - 3 (3 bytes,
22 bits)
16-bit Opcode:
1001 0101 0001 1001
55.2. Status Register (SREG) and Boolean Formula
I T H S V N Z C
– – – – – – – –
Example:
ldi r16,$05 ; Set up EIND and Z-pointer
out EIND,r16
ldi r30,$00
ldi r31,$10
eicall ; Call to $051000
Words 1 (2 bytes)
Cycles 4 (only implemented in devices with 22-bit PC)
Cycles XMEGA 3 (only implemented in devices with 22-bit PC)
Atmel AVR Instruction Set Manual [OTHER]
Atmel-0856L-AVR-Instruction-Set-Manual_Other-11/2016
87