|
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) |
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.
|
I |
– |
||
|
T |
– |
||
|
H |
– |
||
|
S |
– |
||
|
V |
– |
||
|
N |
– |
||
|
Z |
– |
||
|
C |
– |
ldi r16,0x05 ; Set up EIND and Z-pointer
out EIND,r16
ldi r30,0x00
ldi r31,0x10
eicall ; Call to 0x051000
1 (2 bytes)
|
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.