Contenido>Indice>Intro Instrucciones


Instrucción: ACALL
Función: Llamada absoluta dentro de un bloque de 2K
Sintaxis: ACALL dir_11

Instrucción Código de Operación 2º Byte Bytes Ciclos Flags
ACALL dir_11
a10 a9 a8 1 0 0 0 0
dir 7-0 2 2 -

Operación: ACALL

(PC) <= (PC) + 2
(SP) <= (SP) + 1
((SP)) <= (PC7-0)
(SP)<= (SP) + 1
((SP)) <= (PC15-8)
(PC10-0) <= dir_11

Descripción: ACALL realiza una llamada incondicional a la subrutina situada en la dirección indicada. ACALL incrementa el PC (Program Counter) dos veces para obtener la dirección de la siguiente instrucción, luego guarda dicha dirección en la pila (el byte de menor peso en primer lugar). En consecuencia el apuntador de pila (SP o Stack Pointer) incrementa su valor en 2. Posteriormente el control del programa se transfiere a la dirección indicada en la instrucción.

La dirección de salto, o nuevo valor para el PC se obtiene uniendo a los 5 bits de mayor peso del PC ya incrementado, los bits 7-5 del código de operación y el segundo byte de la instrucción.

Como la instrucción ACALL sólo afecta a los 11 bits de menor peso del PC, la llamada siempre se produce a una dirección de memoria de código situada dentro del bloque de 2 K al que pertenece el primer byte de la instrucción que sigue al ACALL.

Véase también: LCALL, RET   


  Contenido>Indice>Intro Instrucciones