Instrucción: RCALL |
Función: | Llamada relativa a subrutina |
Sintaxis: | RCALL k |
Código de Operación de 16 bit |
1101 |
kkkk | kkkk | kkkk |
Operación: | PC Ü PC + k + 1 |
Operandos: | -2K £ k < +2K |
Words: | 1 (2 bytes) |
Ciclos: | 3 |
Flags: | Ninguno |
Pila: | STACK Ü PC + 1 |
SP Ü SP - 2 (2 bytes, 16 bits) |
Program Counter: | PC Ü PC + k + 1 |
Descripción: RCALL realiza una llamada relativa a una dirección que se encuentra dentro de PC - 2K + 1 y PC +2K (words). En ensamblador, se usan etiquetas en lugar de operadores relativos. Para los microcontroladores AVR con memoria de programa que no excede 4K words (8K bytes) esta instrucción puede dirigirse a toda la memoria desde cualquier posición de dirección. El Stack Pointer (puntero de pila) utiliza durante el RCALL un esquema de post-decremento. |
|
Ejemplo: |
|
RCALL routine | ; Llamada a subrutina |
... |
|
routine: PUSH r14 |
; Guardar r14 en la pila |
... |
|
POP r14 |
; Restaurar r14 |
RET | ; Retorno de subrutina |