Operations:

Syntax:

Operation:

Operands:

Program Counter:

Opcode

Comment

Stack:

EICALL

PC(15:0) = Z(15:0)

PC(21:16) = EIND

None

See Operation

1001010100011001

STACK = PC + 1

SP = SP - 3 (3 bytes, 22 bits)

Description

Indirect call of a subroutine pointed to by the Z (16-bit) 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 on all devices. Refer to Appendix A.

Status Register (SREG) and Boolean Formula

I

T

H

S

V

N

Z

C

Example:

      ldi   r16,0x05  ; Set up EIND and Z-pointer
      out   EIND,r16
      ldi   r30,0x00
      ldi   r31,0x10
      eicall          ; Call to 0x051000

Words

1 (2 bytes)

Table Cycles

Name

Cycles

AVRe

4(2)

AVRxm

3(2)

AVRxt

3

AVRrc

N/A

Notes:

1.

The instruction is only implemented on devices with 22-bit PC

2.

Cycle times for data memory access assume internal RAM access and are not valid for accessing external RAM.